From 5d3ba2753a059366723ba6fc8b5feb51fcc81cd2 Mon Sep 17 00:00:00 2001 From: Lsuper Date: Sat, 25 Mar 2017 14:13:13 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=A2=9E=E5=8A=A0=20Embarcadero.Delp?= =?UTF-8?q?hi.10.1.Berlin.Activator.v13.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 10.1.UP2/Activator/Activator.bdsproj | 183 ++ 10.1.UP2/Activator/Activator.cfg | 45 + 10.1.UP2/Activator/Activator.dpr | 33 + 10.1.UP2/Activator/Activator.res | Bin 0 -> 10464 bytes 10.1.UP2/Activator/Activator_0.inc | 20 + 10.1.UP2/Activator/Activator_1.inc | 9 + 10.1.UP2/Activator/Activator_2.inc | 4 + 10.1.UP2/Activator/Activator_3.inc | 4 + 10.1.UP2/Activator/Activator_4.inc | 4 + 10.1.UP2/Activator/Admin.res | Bin 0 -> 1660 bytes 10.1.UP2/Activator/FileUtils.pas | 65 + 10.1.UP2/Activator/MainFrm.dfm | 425 +++ 10.1.UP2/Activator/MainFrm.pas | 760 ++++++ 10.1.UP2/Activator/MainFrm_1.inc | 49 + 10.1.UP2/Activator/PatchData.inc | 3407 +++++++++++++++++++++++++ 10.1.UP2/Activator/PatchData.pas | 26 + 10.1.UP2/Activator/TMainForm.inc | 1 + 10.1.UP2/Activator/TMainFormclass.inc | 1 + 10.1.UP2/Activator/WinUtils.pas | 383 +++ 10.1.UP2/Activator/uses.inc | 9 + 10.1.UP2/Dcu/dirinfo.txt | 1 + 10.1.UP2/Keygen/AnsiStrings.pas | 7 + 10.1.UP2/Keygen/FGInt.pas | 2282 +++++++++++++++++ 10.1.UP2/Keygen/RadKeygen.pas | 392 +++ 10.1.UP2/Keygen/RadLicense.pas | 313 +++ 10.1.UP2/Keygen/RadVersion.pas | 168 ++ 10.1.UP2/Keygen/SHFolderDll.pas | 894 +++++++ 10.1.UP2/Keygen/Sha1.pas | 251 ++ 10.1.UP2/Release/Activator.exe | Bin 0 -> 217056 bytes 10.1.UP2/Release/Readme.txt | 38 + 10.1.UP2/Release/Versign.cer | Bin 0 -> 1239 bytes README.md | 4 + 32 files changed, 9778 insertions(+) create mode 100644 10.1.UP2/Activator/Activator.bdsproj create mode 100644 10.1.UP2/Activator/Activator.cfg create mode 100644 10.1.UP2/Activator/Activator.dpr create mode 100644 10.1.UP2/Activator/Activator.res create mode 100644 10.1.UP2/Activator/Activator_0.inc create mode 100644 10.1.UP2/Activator/Activator_1.inc create mode 100644 10.1.UP2/Activator/Activator_2.inc create mode 100644 10.1.UP2/Activator/Activator_3.inc create mode 100644 10.1.UP2/Activator/Activator_4.inc create mode 100644 10.1.UP2/Activator/Admin.res create mode 100644 10.1.UP2/Activator/FileUtils.pas create mode 100644 10.1.UP2/Activator/MainFrm.dfm create mode 100644 10.1.UP2/Activator/MainFrm.pas create mode 100644 10.1.UP2/Activator/MainFrm_1.inc create mode 100644 10.1.UP2/Activator/PatchData.inc create mode 100644 10.1.UP2/Activator/PatchData.pas create mode 100644 10.1.UP2/Activator/TMainForm.inc create mode 100644 10.1.UP2/Activator/TMainFormclass.inc create mode 100644 10.1.UP2/Activator/WinUtils.pas create mode 100644 10.1.UP2/Activator/uses.inc create mode 100644 10.1.UP2/Dcu/dirinfo.txt create mode 100644 10.1.UP2/Keygen/AnsiStrings.pas create mode 100644 10.1.UP2/Keygen/FGInt.pas create mode 100644 10.1.UP2/Keygen/RadKeygen.pas create mode 100644 10.1.UP2/Keygen/RadLicense.pas create mode 100644 10.1.UP2/Keygen/RadVersion.pas create mode 100644 10.1.UP2/Keygen/SHFolderDll.pas create mode 100644 10.1.UP2/Keygen/Sha1.pas create mode 100644 10.1.UP2/Release/Activator.exe create mode 100644 10.1.UP2/Release/Readme.txt create mode 100644 10.1.UP2/Release/Versign.cer diff --git a/10.1.UP2/Activator/Activator.bdsproj b/10.1.UP2/Activator/Activator.bdsproj new file mode 100644 index 0000000..77169e6 --- /dev/null +++ b/10.1.UP2/Activator/Activator.bdsproj @@ -0,0 +1,183 @@ + + + + + + + + + + + + Activator.dpr + + + 7.0 + + + 8 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 1 + 0 + 1 + True + True + Classes=;mirror= + + False + + False + True + False + True + True + False + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + False + False + False + True + True + True + True + True + True + True + True + True + True + True + True + True + True + True + + + + 0 + 0 + False + 1 + False + False + False + 16384 + 1048576 + 4194304 + + + + ..\Release + ..\Dcu + + + ..\KOL + vcl;rtl + KOL_MCK;NOT_USE_RICHEDIT;USE_MHTOOLTIP;xDEBUGMODE + + False + + + + + + False + + + True + False + + + False + + + True + False + 24 + 0 + 25048 + 9432 + False + False + False + False + False + 1033 + 1252 + + + + + 24.0.25048.9432 + + + + + + 24.0.25048.9432 + + + + + diff --git a/10.1.UP2/Activator/Activator.cfg b/10.1.UP2/Activator/Activator.cfg new file mode 100644 index 0000000..204f957 --- /dev/null +++ b/10.1.UP2/Activator/Activator.cfg @@ -0,0 +1,45 @@ +-$A8 +-$B- +-$C- +-$D- +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J+ +-$K- +-$L- +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$Y- +-$Z1 +-cg +-AClasses=;mirror= +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-E"..\Release" +-N0"..\Dcu" +-LE"C:\Users\Public\Documents\RAD Studio\5.0\Bpl" +-LN"C:\Users\Public\Documents\RAD Studio\5.0\Dcp" +-U"..\KOL" +-O"..\KOL" +-I"..\KOL" +-R"..\KOL" +-DKOL_MCK;NOT_USE_RICHEDIT;USE_MHTOOLTIP;xDEBUGMODE +-w-SYMBOL_DEPRECATED +-w-SYMBOL_PLATFORM +-w-UNIT_PLATFORM diff --git a/10.1.UP2/Activator/Activator.dpr b/10.1.UP2/Activator/Activator.dpr new file mode 100644 index 0000000..c41aa86 --- /dev/null +++ b/10.1.UP2/Activator/Activator.dpr @@ -0,0 +1,33 @@ +{ KOL MCK } // Do not remove this line! +program Activator; + +uses +KOL, + FileUtils in 'FileUtils.pas', + PatchData in 'PatchData.pas', + WinUtils in 'WinUtils.pas', + + AnsiStrings in '..\Keygen\AnsiStrings.pas', + FGInt in '..\Keygen\FGInt.pas', + RadKeygen in '..\Keygen\RadKeygen.pas', + RadLicense in '..\Keygen\RadLicense.pas', + RadVersion in '..\Keygen\RadVersion.pas', + Sha1 in '..\Keygen\Sha1.pas', + SHFolderDll in '..\Keygen\SHFolderDll.pas', + + MainFrm in 'MainFrm.pas' {MainForm}; + +{$R *.res} + +begin // PROGRAM START HERE -- Please do not remove this comment + +{$IF Defined(KOL_MCK)} {$I Activator_0.inc} {$ELSE} + + Application.Initialize; + Application.MainFormOnTaskbar := True; + Application.CreateForm(TMainForm, MainForm); + Application.Run; + +{$IFEND} + +end. diff --git a/10.1.UP2/Activator/Activator.res b/10.1.UP2/Activator/Activator.res new file mode 100644 index 0000000000000000000000000000000000000000..c5723114167982a91f60ddf7335ba411d7da645e GIT binary patch literal 10464 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 literal 0 HcmV?d00001 diff --git a/10.1.UP2/Activator/Activator_0.inc b/10.1.UP2/Activator/Activator_0.inc new file mode 100644 index 0000000..992724a --- /dev/null +++ b/10.1.UP2/Activator/Activator_0.inc @@ -0,0 +1,20 @@ +{ KOL MCK } // Do not remove this line! +{ Activator_0.inc + Do not edit this file manually - it is generated automatically. + You can only modify Activator_1.inc and Activator_3.inc + files. } + +{$IFDEF Pcode} + InstallCollapse; +{$ENDIF Pcode} + NewMainForm( MainForm, nil ); +{$I Activator_1.inc} + +{$I Activator_2.inc} + +{$I Activator_3.inc} + + Run( MainForm.Form ); + +{$I Activator_4.inc} + diff --git a/10.1.UP2/Activator/Activator_1.inc b/10.1.UP2/Activator/Activator_1.inc new file mode 100644 index 0000000..bf7fb47 --- /dev/null +++ b/10.1.UP2/Activator/Activator_1.inc @@ -0,0 +1,9 @@ +{ Activator_1.inc + This file is for you. Place here any code to run it + just following Applet creation (if it present) but + before creating other forms. E.g., You can place here + statement, which prevents running of application + in some cases. TIP: always use Applet for such checks + and make it invisible until final decision if to run + application or not. } + diff --git a/10.1.UP2/Activator/Activator_2.inc b/10.1.UP2/Activator/Activator_2.inc new file mode 100644 index 0000000..70dd6e8 --- /dev/null +++ b/10.1.UP2/Activator/Activator_2.inc @@ -0,0 +1,4 @@ +{ KOL MCK } // Do not remove this line! +{ Activator_2.inc + Do not modify this file manually - it is generated automatically. } + diff --git a/10.1.UP2/Activator/Activator_3.inc b/10.1.UP2/Activator/Activator_3.inc new file mode 100644 index 0000000..87b08f2 --- /dev/null +++ b/10.1.UP2/Activator/Activator_3.inc @@ -0,0 +1,4 @@ +{ Activator_3.inc + This file is for you. Place here any code to run it + after forms creating, but before Run call, if necessary. } + diff --git a/10.1.UP2/Activator/Activator_4.inc b/10.1.UP2/Activator/Activator_4.inc new file mode 100644 index 0000000..33c5c42 --- /dev/null +++ b/10.1.UP2/Activator/Activator_4.inc @@ -0,0 +1,4 @@ +{ Activator_4.inc + This file is for you. Place here any code to be inserted + after Run call, if necessary. } + diff --git a/10.1.UP2/Activator/Admin.res b/10.1.UP2/Activator/Admin.res new file mode 100644 index 0000000000000000000000000000000000000000..6a6155e65521e260c21dbfa617519ac262ffa366 GIT binary patch literal 1660 zcmb7EU5nH(6kS0C7X%-DEPWI*{qD3&XJuFv78QkA^*K#$cY|$GlXQ0n@we;E%yjHH z$ZDYT(Q|X|J?Gx!X zX=PMn2~*t}HQnqs^1Y5q(SWg^r`e`dmmH)OcKz(s!zF2l`Bp;@dbUEYJF3CoLcLZD zj8S^2*^RKk?4U9BzQ}h0Q$e#3MQ!)lb&p|pLME{vxXc_3)1tR1{`@dg6-=>BXb%z# zWNX~$>ch?3H+H$RVh3!%(Vjz14svT+$d+yUepLN_G;sDsNUrY8>_T;&lH@{3t5s`u zg2r8Yy}47n*E_-w`n3-n>Q=C~u)b1X0p}sl%B;@QC`}n_BHsLwwx#lVpx5Z>%L(F~ zb%f5sV~2jf-8flUJs5i_8}*Nal=vgP0XAqHm#OUkKl>09^>Z4GP&X~e5w&wf-u6-)}Q zg1v66ucCdAzEfAsf7^iL>?ULd*5aX^%B^@WmhRY$oHy3?XF;$#rnCJqo#8PJR_`x^ zI1IC3H*zDPe~zUBwrxi?+8-Pzu7ZgWrwe&|R8@->`!rVZ_nYD%+}#;tu0z_r+h*u{ zrLo%|R^BCF_}?K8qbSYhB+Am9qzTIi%^DzKSa1MHc+!MF4m)5YJq~FvW%of!?Tb^87(JTj@lO-G{iMD J81FUw^9!h9>qr0q literal 0 HcmV?d00001 diff --git a/10.1.UP2/Activator/FileUtils.pas b/10.1.UP2/Activator/FileUtils.pas new file mode 100644 index 0000000..c6549ba --- /dev/null +++ b/10.1.UP2/Activator/FileUtils.pas @@ -0,0 +1,65 @@ +{ *********************************************************************** } +{ } +{ ߵԪ } +{ } +{ ƣLsuper 2013.02.16 } +{ ע } +{ ˣ } +{ } +{ Copyright (c) 1998-2014 Super Studio } +{ } +{ *********************************************************************** } + +unit FileUtils; + +interface + +uses + SysUtils, Classes; + +function LoadDataFromFile(const AFile: string): AnsiString; +procedure SaveDataToFile(const AFile: string; const ABuffer; ASize: Integer); + +implementation + +uses + Windows; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2010.01.19 +//ܣļ +// +//////////////////////////////////////////////////////////////////////////////// +function LoadDataFromFile(const AFile: string): AnsiString; +begin + with TFileStream.Create(AFile, fmOpenRead or fmShareDenyWrite) do + try + SetLength(Result, Size); + ReadBuffer(PAnsiChar(Result)^, Size); + finally + Free; + end; +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2010.01.19 +//ܣļ +// +//////////////////////////////////////////////////////////////////////////////// +procedure SaveDataToFile(const AFile: string; const ABuffer; + ASize: Integer); +var + F: string; +begin + F := ExtractFileDir(AFile); + ForceDirectories(F); + with TFileStream.Create(AFile, fmCreate or fmShareDenyWrite) do + try + Position := 0; + WriteBuffer(ABuffer, ASize); + finally + Free; + end; +end; + +end. diff --git a/10.1.UP2/Activator/MainFrm.dfm b/10.1.UP2/Activator/MainFrm.dfm new file mode 100644 index 0000000..3ce7435 --- /dev/null +++ b/10.1.UP2/Activator/MainFrm.dfm @@ -0,0 +1,425 @@ +object MainForm: TMainForm + Left = 0 + Top = 0 + HorzScrollBar.Visible = False + VertScrollBar.Visible = False + Caption = 'Delphi 10.1 Berlin Activator' + ClientHeight = 122 + ClientWidth = 534 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = True + Scaled = False + PixelsPerInch = 96 + TextHeight = 13 + object btnExit: TKOLButton + Tag = 0 + Left = 428 + Top = 16 + Width = 90 + Height = 90 + Hint = 'Exit' + HelpType = htKeyword + HelpContext = 0 + IgnoreDefault = True + AnchorLeft = False + AnchorTop = False + AnchorRight = False + AnchorBottom = False + AcceptChildren = False + MouseTransparent = False + TabOrder = 2 + MinWidth = 0 + MinHeight = 0 + MaxWidth = 0 + MaxHeight = 0 + PlaceDown = False + PlaceRight = False + PlaceUnder = False + Visible = True + Enabled = True + DoubleBuffered = False + Align = caNone + CenterOnParent = False + Caption = '&Exit' + Ctl3D = True + Color = clBtnFace + parentColor = False + Font.Color = clWindowText + Font.FontStyle = [] + Font.FontHeight = 0 + Font.FontWidth = 0 + Font.FontWeight = 0 + Font.FontName = 'System' + Font.FontOrientation = 0 + Font.FontCharset = 1 + Font.FontPitch = fpDefault + Font.FontQuality = fqDefault + parentFont = True + OnClick = btnExitClick + EraseBackground = False + Localizy = loForm + Border = 2 + TextAlign = taCenter + VerticalAlign = vaCenter + TabStop = True + autoSize = False + DefaultBtn = False + CancelBtn = False + windowed = True + Flat = False + WordWrap = False + LikeSpeedButton = False + end + object btnAbout: TKOLButton + Tag = 0 + Left = 325 + Top = 16 + Width = 90 + Height = 90 + Hint = 'About' + HelpType = htKeyword + HelpContext = 0 + IgnoreDefault = True + AnchorLeft = False + AnchorTop = False + AnchorRight = False + AnchorBottom = False + AcceptChildren = False + MouseTransparent = False + TabOrder = 0 + MinWidth = 0 + MinHeight = 0 + MaxWidth = 0 + MaxHeight = 0 + PlaceDown = False + PlaceRight = False + PlaceUnder = False + Visible = True + Enabled = True + DoubleBuffered = False + Align = caNone + CenterOnParent = False + Caption = '&About' + Ctl3D = True + Color = clBtnFace + parentColor = False + Font.Color = clWindowText + Font.FontStyle = [] + Font.FontHeight = 0 + Font.FontWidth = 0 + Font.FontWeight = 0 + Font.FontName = 'System' + Font.FontOrientation = 0 + Font.FontCharset = 1 + Font.FontPitch = fpDefault + Font.FontQuality = fqDefault + parentFont = True + OnClick = btnAboutClick + EraseBackground = False + Localizy = loForm + Border = 2 + TextAlign = taCenter + VerticalAlign = vaCenter + TabStop = True + autoSize = False + DefaultBtn = False + CancelBtn = False + windowed = True + Flat = False + WordWrap = False + LikeSpeedButton = False + end + object btnReset: TKOLButton + Tag = 0 + Left = 222 + Top = 16 + Width = 90 + Height = 90 + Hint = 'Reset Delphi 10.1' + HelpType = htKeyword + HelpContext = 0 + IgnoreDefault = True + AnchorLeft = False + AnchorTop = False + AnchorRight = False + AnchorBottom = False + AcceptChildren = False + MouseTransparent = False + TabOrder = 1 + MinWidth = 0 + MinHeight = 0 + MaxWidth = 0 + MaxHeight = 0 + PlaceDown = False + PlaceRight = False + PlaceUnder = False + Visible = True + Enabled = True + DoubleBuffered = False + Align = caNone + CenterOnParent = False + Caption = 'Re&set' + Ctl3D = True + Color = clBtnFace + parentColor = False + Font.Color = clWindowText + Font.FontStyle = [] + Font.FontHeight = 0 + Font.FontWidth = 0 + Font.FontWeight = 0 + Font.FontName = 'System' + Font.FontOrientation = 0 + Font.FontCharset = 1 + Font.FontPitch = fpDefault + Font.FontQuality = fqDefault + parentFont = True + OnClick = btnResetClick + EraseBackground = False + Localizy = loForm + Border = 2 + TextAlign = taCenter + VerticalAlign = vaCenter + TabStop = True + autoSize = False + DefaultBtn = False + CancelBtn = False + windowed = True + Flat = False + WordWrap = False + LikeSpeedButton = False + end + object btnRunX10: TKOLButton + Tag = 0 + Left = 119 + Top = 16 + Width = 90 + Height = 90 + Hint = 'Run Delphi 10.1' + HelpType = htKeyword + HelpContext = 0 + IgnoreDefault = True + AnchorLeft = False + AnchorTop = False + AnchorRight = False + AnchorBottom = False + AcceptChildren = False + MouseTransparent = False + TabOrder = 3 + MinWidth = 0 + MinHeight = 0 + MaxWidth = 0 + MaxHeight = 0 + PlaceDown = False + PlaceRight = False + PlaceUnder = False + Visible = True + Enabled = True + DoubleBuffered = False + Align = caNone + CenterOnParent = False + Caption = '&Run' + Ctl3D = True + Color = clBtnFace + parentColor = False + Font.Color = clWindowText + Font.FontStyle = [] + Font.FontHeight = 0 + Font.FontWidth = 0 + Font.FontWeight = 0 + Font.FontName = 'System' + Font.FontOrientation = 0 + Font.FontCharset = 1 + Font.FontPitch = fpDefault + Font.FontQuality = fqDefault + parentFont = True + OnClick = btnRunX10Click + EraseBackground = False + Localizy = loForm + Border = 2 + TextAlign = taCenter + VerticalAlign = vaCenter + TabStop = True + autoSize = False + DefaultBtn = False + CancelBtn = False + windowed = True + Flat = False + WordWrap = False + LikeSpeedButton = False + end + object btnActive: TKOLButton + Tag = 0 + Left = 16 + Top = 16 + Width = 90 + Height = 90 + Hint = 'Active Delphi 10.1' + HelpType = htKeyword + HelpContext = 0 + IgnoreDefault = True + AnchorLeft = False + AnchorTop = False + AnchorRight = False + AnchorBottom = False + AcceptChildren = False + MouseTransparent = False + TabOrder = 4 + MinWidth = 0 + MinHeight = 0 + MaxWidth = 0 + MaxHeight = 0 + PlaceDown = False + PlaceRight = False + PlaceUnder = False + Visible = True + Enabled = True + DoubleBuffered = False + Align = caNone + CenterOnParent = False + Caption = '&Active' + Ctl3D = True + Color = clBtnFace + parentColor = False + Font.Color = clWindowText + Font.FontStyle = [] + Font.FontHeight = 0 + Font.FontWidth = 0 + Font.FontWeight = 0 + Font.FontName = 'System' + Font.FontOrientation = 0 + Font.FontCharset = 1 + Font.FontPitch = fpDefault + Font.FontQuality = fqDefault + parentFont = True + OnClick = btnActiveClick + EraseBackground = False + Localizy = loForm + Border = 2 + TextAlign = taCenter + VerticalAlign = vaCenter + TabStop = True + autoSize = False + DefaultBtn = False + CancelBtn = False + windowed = True + Flat = False + WordWrap = False + LikeSpeedButton = False + end + object kolActivator: TKOLProject + Locked = False + Localizy = False + projectName = 'Activator' + projectDest = 'Activator' + sourcePath = 'F:\LITE\D10.1\13.2\Crack\Activator\' + outdcuPath = '0"..\Dcu\' + dprResource = True + protectFiles = True + showReport = False + isKOLProject = True + autoBuild = True + autoBuildDelay = 500 + BUILD = False + consoleOut = False + SupportAnsiMnemonics = 0 + PaintType = ptWYSIWIG + ShowHint = True + ReportDetailed = False + GeneratePCode = False + NewIF = True + DefaultFont.Color = clWindowText + DefaultFont.FontStyle = [] + DefaultFont.FontHeight = 0 + DefaultFont.FontWidth = 0 + DefaultFont.FontWeight = 0 + DefaultFont.FontName = 'System' + DefaultFont.FontOrientation = 0 + DefaultFont.FontCharset = 1 + DefaultFont.FontPitch = fpDefault + DefaultFont.FontQuality = fqDefault + FormCompactDisabled = False + Left = 32 + Top = 8 + end + object kolMainForm: TKOLForm + Tag = 0 + ForceIcon16x16 = False + Caption = 'Delphi 10.1 Berlin Activator' + Visible = True + OnMessage = kolMainFormMessage + OnDestroy = kolMainFormDestroy + AllBtnReturnClick = False + Tabulate = False + TabulateEx = False + UnitSourcePath = 'F:\LITE\D10.1\13.2\Crack\Activator\' + Locked = False + formUnit = 'MainFrm' + formMain = True + Enabled = True + defaultSize = False + defaultPosition = False + MinWidth = 0 + MinHeight = 0 + MaxWidth = 0 + MaxHeight = 0 + HasBorder = True + HasCaption = True + StayOnTop = False + CanResize = False + CenterOnScreen = True + Ctl3D = True + WindowState = wsNormal + minimizeIcon = False + maximizeIcon = False + closeIcon = True + helpContextIcon = False + borderStyle = fbsSingle + HelpContext = 0 + Color = clBtnFace + Font.Color = clWindowText + Font.FontStyle = [] + Font.FontHeight = 0 + Font.FontWidth = 0 + Font.FontWeight = 0 + Font.FontName = 'System' + Font.FontOrientation = 0 + Font.FontCharset = 1 + Font.FontPitch = fpDefault + Font.FontQuality = fqDefault + FontDefault = True + Brush.Color = clBtnFace + Brush.BrushStyle = bsSolid + DoubleBuffered = False + PreventResizeFlicks = False + Transparent = False + AlphaBlend = 255 + Border = 2 + MarginLeft = 0 + MarginRight = 0 + MarginTop = 0 + MarginBottom = 0 + MinimizeNormalAnimated = False + RestoreNormalMaximized = False + zOrderChildren = False + statusSizeGrip = True + Localizy = False + ShowHint = True + KeyPreview = False + OnShow = kolMainFormShow + OnFormCreate = kolMainFormFormCreate + EraseBackground = False + supportMnemonics = False + FormCompact = False + GenerateCtlNames = False + Unicode = False + OverrideScrollbars = False + AssignTabOrders = False + Left = 64 + Top = 8 + end +end diff --git a/10.1.UP2/Activator/MainFrm.pas b/10.1.UP2/Activator/MainFrm.pas new file mode 100644 index 0000000..2f84b98 --- /dev/null +++ b/10.1.UP2/Activator/MainFrm.pas @@ -0,0 +1,760 @@ +{ KOL MCK } // Do not remove this line! +{$DEFINE KOL_MCK} +unit MainFrm; + +interface + +{$IFDEF KOL_MCK} +uses Windows, Messages, KOL {$IF Defined(KOL_MCK)}{$ELSE}, mirror, Classes, Controls, mckCtrls, mckObjs, Graphics {$IFEND (place your units here->)}; +{$ELSE} +{$I uses.inc} + Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, mirror; +{$ENDIF} + +type + {$IF Defined(KOL_MCK)} + {$I MCKfakeClasses.inc} + {$IFDEF KOLCLASSES} {$I TMainFormclass.inc} {$ELSE OBJECTS} PMainForm = ^TMainForm; {$ENDIF CLASSES/OBJECTS} + {$IFDEF KOLCLASSES}{$I TMainForm.inc}{$ELSE} TMainForm = object(TObj) {$ENDIF} + Form: PControl; + {$ELSE not_KOL_MCK} + TMainForm = class(TForm) + {$IFEND KOL_MCK} + btnAbout: TKOLButton; + btnActive: TKOLButton; + btnExit: TKOLButton; + btnReset: TKOLButton; + btnRunX10: TKOLButton; + kolActivator: TKOLProject; + kolMainForm: TKOLForm; + procedure btnAboutClick(Sender: PObj); + procedure btnActiveClick(Sender: PObj); + procedure btnExitClick(Sender: PObj); + procedure btnResetClick(Sender: PObj); + procedure btnRunX10Click(Sender: PObj); + procedure kolMainFormDestroy(Sender: PObj); + procedure kolMainFormFormCreate(Sender: PObj); + function kolMainFormMessage(var Msg: TMsg; var Rslt: Integer): Boolean; + procedure kolMainFormShow(Sender: PObj); + private + FAppPath, + FBdsPath: string; + FCurFileBuild: Integer; + FSerialNumber, + FRegCode, + FInformation: string; + private + function FindBdsPath: Boolean; + + function GetSystemHostsFile: string; + + procedure BeginCursor; + procedure EndCursor; + + procedure BuildGenuineCglmFile(const ASerialNumber: string = ''); + procedure BuildGenuineSlipFile; + + procedure BuildTrialCglmFile; + procedure BuildTrialSlipFile; + + procedure CopyFile(const ASrcFile, ADestFile: string); + + procedure DeleteFile(const AFile: string); + procedure DeleteFiles(const AFileMask: string); + + procedure GenerateRegistrationCode; + procedure GenerateKeyGenLicense; + + procedure PatchLicenseHostsFile; + procedure RestoreLicenseHostsFile; + + procedure PatchBdsFile; + procedure RestoreBdsFile; + + procedure DeleteTrialFiles; + procedure DeleteTrialRegKeys; + + procedure DoActive; + procedure DoReset; + procedure DoRunX10; + + procedure ShowAboutMessage; + + procedure Execute; + end; + +var + MainForm {$IFDEF KOL_MCK} : PMainForm {$ELSE} : TMainForm {$ENDIF} ; + +{$IFDEF KOL_MCK} +procedure NewMainForm( var Result: PMainForm; AParent: PControl ); +{$ENDIF} + +implementation + +{.$DEFINE DEBUGMODE} + +uses + SysUtils, ShellAPI, Registry, FileUtils, PatchData, WinUtils, RadKeygen, RadVersion; + +{$IF Defined(KOL_MCK)}{$ELSE}{$R *.DFM}{$IFEND} + +{$IFDEF KOL_MCK} +{$I MainFrm_1.inc} +{$ENDIF} + +{$IFDEF DEBUGMODE} + {$R WindowsXP.res} +{$ELSE} + {$R 'Admin.res'} { Ա } +{$ENDIF} + +const + CSIDL_APPDATA = $001A; // Application Data, new for NT4, \Application Data + CSIDL_COMMON_APPDATA = $0023; // All Users\Application Data + + UM_SHOWABOUT = 100; + +const + defAppMessage = 'Based on the hard work of unis, x-force, cjack. 3x ;>'; + defAppVersion = '13.2'; + + defAppHelperFileName = 'SHFolder.dll'; + + defBdsVersion = '18.0'; + defBdsdLicenseManager = '"%s" -reg -skey 8218_21 -loadKey 2024 -a'; + + defBdsPatchFileName = defAppHelperFileName; + + defLicenseHosts: array[0..10] of string = ( + '127.0.0.1 comapi.embarcadero.com', + '127.0.0.1 license.embarcadero.com', + '127.0.0.1 track.embarcadero.com', + '127.0.0.1 external.ws.sanctx.embarcadero.com', + '127.0.0.1 object.ws.sanctx.embarcadero.com', + '127.0.0.1 license.codegear.com', + '127.0.0.1 license-stage.codegear.com', + '127.0.0.1 services.server.v8.srs.sanctuary.codegear.com', + '127.0.0.1 LicenseRenewalServicesImpl.services.server.v8.srs.sanctuary.codegear.com', + '127.0.0.1 LicenseUsageServicesImpl.services.server.v8.srs.sanctuary.codegear.com', + '127.0.0.1 RegistrationServicesImpl.services.server.v8.srs.sanctuary.codegear.com' + ); + +{ TMainForm } + +procedure TMainForm.BeginCursor; +begin + SetCursor(LoadCursor(0, IDC_WAIT)); +end; + +procedure TMainForm.btnAboutClick(Sender: PObj); +begin +{$IFDEF DEBUGMODE} + LogMessage('About'); +{$ENDIF} + ShowAboutMessage; +end; + +procedure TMainForm.btnActiveClick(Sender: PObj); +begin +{$IFDEF DEBUGMODE} + LogMessage('Active'); +{$ENDIF} + BeginCursor; + try + DoActive; + finally + EndCursor; + end; +end; + +procedure TMainForm.btnExitClick(Sender: PObj); +begin +{$IFDEF DEBUGMODE} + LogMessage('Exit'); +{$ENDIF} + Self.Form.Close; +end; + +procedure TMainForm.btnResetClick(Sender: PObj); +begin +{$IFDEF DEBUGMODE} + LogMessage('Reset'); +{$ENDIF} + BeginCursor; + try + DoReset; + finally + EndCursor; + end; +end; + +procedure TMainForm.btnRunX10Click(Sender: PObj); +begin +{$IFDEF DEBUGMODE} + LogMessage('Run'); +{$ENDIF} + BeginCursor; + try + DoRunX10; + finally + EndCursor; + end; +end; + +procedure TMainForm.BuildGenuineCglmFile(const ASerialNumber: string); +var + F: AnsiString; + S: string; +begin + SetLength(F, Length(defCglmFileDatas)); + Move(defCglmFileDatas, Pointer(F)^, Length(defCglmFileDatas)); + if ASerialNumber <> '' then + F := AnsiString(StringReplace(string(F), defCglmSerialNumber, ASerialNumber, [rfReplaceAll])); + S := FBdsPath + 'Bin\cglm.ini'; + SaveDataToFile(S, Pointer(F)^, Length(F)); + S := GetShellFolderPath(CSIDL_COMMON_APPDATA) + 'Embarcadero\Studio\' + defBdsVersion + '\cglm.ini'; + SaveDataToFile(S, Pointer(F)^, Length(F)); +end; + +procedure TMainForm.BuildGenuineSlipFile; +var + S: string; +begin + S := FBdsPath + 'License\*.slip'; + DeleteFiles(S); + S := FBdsPath + 'License\RADStudio10_1.slip'; + SaveDataToFile(S, defGenuineLicFileDatas, Length(defGenuineLicFileDatas)); +end; + +procedure TMainForm.BuildTrialCglmFile; +var + S: string; +begin + S := FBdsPath + 'Bin\cglm.ini'; + SaveDataToFile(S, defCglmFileDatas, Length(defCglmFileDatas)); +end; + +procedure TMainForm.BuildTrialSlipFile; +var + S: string; +begin + S := FBdsPath + 'License\*.slip'; + DeleteFiles(S); + S := FBdsPath + 'License\RADStudio10_1.slip'; + SaveDataToFile(S, defTrialLicFileDatas, Length(defTrialLicFileDatas)); +end; + +procedure TMainForm.CopyFile(const ASrcFile, ADestFile: string); +{$IFDEF DEBUGMODE} +var + bRet: Boolean; +{$ENDIF} +begin +{$IFDEF DEBUGMODE} + bRet := Windows.CopyFile(PChar(ASrcFile), PChar(ADestFile), False); + if bRet then + LogMessage('CopyFile.OK: ' + ADestFile) + else LogMessage('CopyFile.Error: ' + ADestFile + ', ' + SysErrorMessage(GetLastError)); +{$ELSE} + Windows.CopyFile(PChar(ASrcFile), PChar(ADestFile), False); +{$ENDIF} +end; + +procedure TMainForm.DeleteFile(const AFile: string); +{$IFDEF DEBUGMODE} +var + bRet: Boolean; +{$ENDIF} +begin +{$IFDEF DEBUGMODE} + LogMessage('DeleteFile: ' + AFile + ' ...'); + bRet := Windows.DeleteFile(PChar(AFile)); + if bRet then + LogMessage('DeleteFile.OK: ' + AFile) + else LogMessage('DeleteFile.Error: ' + AFile + ', ' + SysErrorMessage(GetLastError)); +{$ELSE} + Windows.DeleteFile(PChar(AFile)); +{$ENDIF} +end; + +procedure TMainForm.DeleteFiles(const AFileMask: string); + //////////////////////////////////////////////////////////////////////////////// + //: Lsuper 2005.09.21 + //: жļ + // + //////////////////////////////////////////////////////////////////////////////// + function IsDirNotation(const AName: string): Boolean; + begin + Result := (AName = '.') or (AName = '..'); + end; +var + cSearchRec: TSearchRec; + strFilePath: string; +begin +{$IFDEF DEBUGMODE} + LogMessage('DeleteFiles: ' + AFileMask + ' ...'); +{$ENDIF} + strFilePath := ExtractFilePath(AFileMask); + if FindFirst(AFileMask, faAnyFile, cSearchRec) = 0 then + repeat + if (cSearchRec.Name <> '') and not IsDirNotation(cSearchRec.Name) then + begin +{$IFDEF DEBUGMODE} + LogMessage('DeleteFiles, File: ' + strFilePath + cSearchRec.Name); +{$ENDIF} + SysUtils.DeleteFile(strFilePath + cSearchRec.Name); + end; + until FindNext(cSearchRec) <> 0; + SysUtils.FindClose(cSearchRec); +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2011.01.05 +//ܣȨϢ +// +//////////////////////////////////////////////////////////////////////////////// +procedure TMainForm.DeleteTrialFiles; +var + AllUsersPath, UserPath: string; +begin +{$IFDEF DEBUGMODE} + LogMessage('DeleteTrialFiles'); +{$ENDIF} + AllUsersPath := GetShellFolderPath(CSIDL_COMMON_APPDATA) + 'Embarcadero\'; + UserPath := GetShellFolderPath(CSIDL_APPDATA) + 'Embarcadero\'; + +{$IFDEF DEBUGMODE} + LogMessage('DeleteTrialFiles.AllUsersPath: ' + AllUsersPath); + LogMessage('DeleteTrialFiles.UserPath: ' + UserPath); +{$ENDIF} + + DeleteFile(UserPath + '.cgb_license'); + DeleteFile(AllUsersPath + '.cgb_license'); + + DeleteFile(UserPath + '.licenses\.cg_license'); + DeleteFile(AllUsersPath + '.licenses\.cg_license'); + + DeleteFile(AllUsersPath + 'RAD Studio Activation.slip'); + + DeleteFiles(AllUsersPath + '.82*.slip'); +end; + +procedure TMainForm.DeleteTrialRegKeys; +begin +{$IFDEF DEBUGMODE} + LogMessage('DeleteTrialRegKeys'); +{$ENDIF} +end; + +procedure TMainForm.DoActive; +var + S: string; + nBuild: Integer; +begin +{$IFDEF DEBUGMODE} + LogMessage('DoActive'); +{$ENDIF} + if not FindBdsPath then + begin + ShowError('No BDS find!'); + Exit; + end; + S := FBdsPath + 'Bin\bds.exe'; + nBuild := GetFileBuildVersion(S); + if nBuild <> FCurFileBuild then + begin + ShowError('BDS version not support!'); + Exit; + end; + BuildTrialCglmFile; + BuildTrialSlipFile; + RestoreBdsFile; + + GenerateRegistrationCode; + GenerateKeyGenLicense; + BuildGenuineCglmFile; + BuildGenuineSlipFile; + PatchBdsFile; + PatchLicenseHostsFile; +{ + ShowMessage('Active', 'OK!'); +} + ShowMessage('Active', 'OK! Code: ' + FRegCode + ', Serial: ' + FSerialNumber); +end; + +procedure TMainForm.DoReset; +begin +{$IFDEF DEBUGMODE} + LogMessage('DoReset'); +{$ENDIF} + if not FindBdsPath then + begin + ShowError('No BDS find!'); + Exit; + end; + DeleteTrialFiles; + DeleteTrialRegKeys; + BuildTrialCglmFile; + BuildTrialSlipFile; + RestoreBdsFile; + RestoreLicenseHostsFile; + ShowMessage('Reset', 'OK!'); +end; + +procedure TMainForm.DoRunX10; +var + BdsExe: string; +begin +{$IFDEF DEBUGMODE} + LogMessage('DoRunX10'); +{$ENDIF} + if not FindBdsPath then + begin + ShowError('No BDS find!'); + Exit; + end; + FBdsPath := FBdsPath + 'Bin'; + BdsExe := FBdsPath + '\bds.exe'; + ShellExecute(0, 'open', PChar(BdsExe), '-pDelphi', PChar(FBdsPath), SW_NORMAL); + Delay(20); +end; + +procedure TMainForm.EndCursor; +begin + SetCursor(LoadCursor(0, IDC_ARROW)); +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2011.09.20 +//ܣֱִ Lite İװ +// +//////////////////////////////////////////////////////////////////////////////// +procedure TMainForm.Execute; +var + S: string; + nBuild: Integer; +begin + if not FindBdsPath then + begin + LogMessage('No BDS find!'); + Exit; + end; + S := FBdsPath + 'Bin\bds.exe'; + nBuild := GetFileBuildVersion(S); + if nBuild <> FCurFileBuild then + begin + LogMessage('BDS version not support!'); + Exit; + end; + + GenerateRegistrationCode; + GenerateKeyGenLicense; + BuildGenuineCglmFile; + BuildGenuineSlipFile; + PatchBdsFile; + PatchLicenseHostsFile; +{ + LogMessage('Done.'); +} + LogMessage('Done. Code: ' + FRegCode + ', Serial: ' + FSerialNumber); +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2013.02.15 +//ܣ Delphi +// +//////////////////////////////////////////////////////////////////////////////// +function TMainForm.FindBdsPath: Boolean; +begin + Result := False; + with TRegistry.Create do + try + Access := KEY_READ; + RootKey := HKEY_LOCAL_MACHINE; + if OpenKeyReadOnly('SOFTWARE\Embarcadero\BDS\' + defBdsVersion) then + begin + FBdsPath := ReadString('RootDir'); + CloseKey; + end; + finally + Free; + end; + if FBdsPath <> '' then + begin + FBdsPath := IncludeTrailingPathDelimiter(FBdsPath); + Result := FileExists(FBdsPath + 'Bin\bds.exe'); + end; +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2013.05.01 +//ܣ +// +//ע⣺û IPC ֪ͨͨѶ +//////////////////////////////////////////////////////////////////////////////// +procedure TMainForm.GenerateKeyGenLicense; + + function CurrentRadStudioVersion: PRadStudioVersion; inline; + begin + Assert(RadStudioVersionList.Count > 0); + Result := PRadStudioVersion(RadStudioVersionList.Objects[0]); + end; +begin +{$IFDEF DEBUGMODE} + LogMessage('GenerateKeyGenLicense'); +{$ENDIF} + FSerialNumber := RadKeygen.GenerateSerialNumber; + FRegCode := RadKeygen.GetRegistrationCode; + RadKeygen.GenerateLicenseFile(FSerialNumber, FRegCode, CurrentRadStudioVersion, FInformation); +end; + +//////////////////////////////////////////////////////////////////////////////// +//: Lsuper 2006.09.19 +//: ע +// +//ע⣺û IPC ֪ͨͨѶ +//////////////////////////////////////////////////////////////////////////////// +procedure TMainForm.GenerateRegistrationCode; +var + si: TStartupInfo; + pi: TProcessInformation; + nExitCode: LongWord; + strHelper, strCommandLine, strWorkDir: string; +begin +{$IFDEF DEBUGMODE} + LogMessage('GenerateRegistrationCode'); +{$ENDIF} + strHelper := FAppPath + defAppHelperFileName; + if not FileExists(strHelper) then + SaveDataToFile(strHelper, defHelperDatas, Length(defHelperDatas)); + strWorkDir := FBdsPath + 'Bin'; + strCommandLine := Format('%s\LicenseManager.exe', [strWorkDir]); + if not FileExists(strCommandLine) then + raise Exception.CreateFmt('File %s not exists!', [strCommandLine]); + strCommandLine := Format(defBdsdLicenseManager, [strCommandLine]); + FillChar(si, SizeOf(TStartupInfo), 0); + with si do + begin + cb := SizeOf(TStartupInfo); + dwFlags := STARTF_USESHOWWINDOW + STARTF_FORCEONFEEDBACK; + wShowWindow := SW_HIDE; + end; + if CreateProcessEx(nil, PChar(strCommandLine), nil, nil, False, 0, nil, PChar(strWorkDir), si, pi, AnsiString(strHelper)) then + try + WaitForSingleObject(pi.hProcess, INFINITE); + GetExitCodeProcess(pi.hProcess, nExitCode); + if nExitCode = 0 then + raise Exception.Create('BdsReg error!'); + finally + CloseHandle(pi.hThread); + CloseHandle(pi.hProcess); + end + else RaiseLastOSError; +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2009.01.30 +//ܣȡWindowsϵͳĿ¼ +// +//////////////////////////////////////////////////////////////////////////////// +function TMainForm.GetSystemHostsFile: string; +const + defHostsFilePath = 'drivers\etc\hosts'; +var + nRet: LongWord; +begin + SetLength(Result, MAX_PATH); + nRet := GetSystemDirectory(PChar(Result), MAX_PATH); + if nRet = 0 then + Result := '' + else begin + SetLength(Result, nRet); + Result := IncludeTrailingPathDelimiter(Result) + defHostsFilePath; + end; +end; + +procedure TMainForm.kolMainFormDestroy(Sender: PObj); +begin + LogMessage('Destroy'); +{$IFNDEF DEBUGMODE} + DeleteFiles(FAppPath + '*.*'); + RemoveDirectory(PChar(FAppPath)); +{$ENDIF} +end; + +procedure TMainForm.kolMainFormFormCreate(Sender: PObj); +var + S: string; +begin + LogMessage('Create'); + + FAppPath := GetShellFolderPath(CSIDL_APPDATA); + FAppPath := IncludeTrailingPathDelimiter(FAppPath) + 'Activator\' + defAppVersion + '\'; + ForceDirectories(FAppPath); + S := GetModuleName(HInstance); + FCurFileBuild := GetFileBuildVersion(S); + + SetEnvironmentVariable('SESSIONNAME', 'Conso1e'); + + if ParamStr(1) = '-process' then + begin + Execute; + Halt(1); + end; +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2003.09.21 +//ܣϵͳ˵ +// +//////////////////////////////////////////////////////////////////////////////// +function TMainForm.kolMainFormMessage(var Msg: TMsg; + var Rslt: Integer): Boolean; +begin + if (Msg.message = WM_SYSCOMMAND) and (Msg.WParam = UM_SHOWABOUT) then + ShowAboutMessage; + Result := False; +end; + +procedure TMainForm.kolMainFormShow(Sender: PObj); +var + hMain : HMENU; +begin + LogMessage('Show'); + + hMain := GetSystemMenu(Self.Form.Handle, False); + AppendMenu(hMain, MF_SEPARATOR, 0, nil); + AppendMenu(hMain, MF_STRING{ or MF_CHECKED}, UM_SHOWABOUT, 'About ...'); + SetMainFormHandle(Self.Form.Handle); +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2011.09.21 +//ܣ޸ BDS.exe ļ +// +//////////////////////////////////////////////////////////////////////////////// +procedure TMainForm.PatchBdsFile; +var + S: string; +begin +{$IFDEF DEBUGMODE} + LogMessage('PatchBdsFile'); +{$ENDIF} + S := FBdsPath + 'Bin\' + defBdsPatchFileName; +{$IFDEF DEBUGMODE} + LogMessage('Patch: ' + S); +{$ENDIF} + SaveDataToFile(S, defBdsPatchDllDatas, SizeOf(defBdsPatchDllDatas)); +end; + +procedure TMainForm.PatchLicenseHostsFile; +var + F, S: string; + nIndex, I: Integer; + pList, pHosts: PStrListEx; +begin +{$IFDEF DEBUGMODE} + LogMessage('PatchLicenseHostsFile'); +{$ENDIF} + F := GetSystemHostsFile; + pHosts := NewStrListEx; + with pHosts^ do + try + if FileExists(F) then + LoadFromFile(F); + pList := NewStrListEx; + for S in defLicenseHosts do + pList.Add(S); + for I := 0 to Count - 1 do + begin + S := Trim(Items[I]); + nIndex := pList.IndexOf(S); + if nIndex >= 0 then + pList.Delete(nIndex); + end; + if pList.Count > 0 then + try +{$IFDEF DEBUGMODE} + LogMessage('PatchLicenseHostsFile, SaveToFile: ' + F); +{$ENDIF} + AddStrings(pList); + FileSetReadOnly(F, False); + SaveToFile(F); + except + on E: Exception do + LogMessage('Disable Hosts Error: ' + E.Message); + end; + pList.Free; + finally + Free; + end; +end; + +procedure TMainForm.RestoreBdsFile; +var + S: string; +begin +{$IFDEF DEBUGMODE} + LogMessage('RestoreBdsFile'); +{$ENDIF} + S := FBdsPath + 'Bin\' + defBdsPatchFileName; +{$IFDEF DEBUGMODE} + LogMessage('Restore: ' + S); +{$ENDIF} + Self.DeleteFile(S);; +end; + +procedure TMainForm.RestoreLicenseHostsFile; +var + F, S: string; + nIndex, nRet, I: Integer; + pList, pHosts: PStrListEx; +begin +{$IFDEF DEBUGMODE} + LogMessage('RestoreLicenseHostsFile'); +{$ENDIF} + F := GetSystemHostsFile; + if not FileExists(F) then + Exit; + pHosts := NewStrListEx; + with pHosts^ do + try + LoadFromFile(F); + pList := NewStrListEx; + for S in defLicenseHosts do + pList.Add(S); + nRet := 0; + for I := Count - 1 downto 0 do + begin + S := Trim(Items[I]); + nIndex := pList.IndexOf(S); + if nIndex < 0 then + Continue; + pHosts.Delete(I); + Inc(nRet); + end; + if nRet > 0 then + try +{$IFDEF DEBUGMODE} + LogMessage('RestoreLicenseHostsFile, SaveToFile: ' + F); +{$ENDIF} + FileSetReadOnly(F, False); + SaveToFile(F); + except + on E: Exception do + LogMessage('Disable Hosts Error: ' + E.Message); + end; + pList.Free; + finally + Free; + end; +end; + +procedure TMainForm.ShowAboutMessage; +begin + with Self.Form^ do + ShellAbout(Handle, PChar(string(Caption) + ', Lsuper'), PAnsiChar(AnsiString(defAppMessage)), Icon); +end; + +end. diff --git a/10.1.UP2/Activator/MainFrm_1.inc b/10.1.UP2/Activator/MainFrm_1.inc new file mode 100644 index 0000000..40348b4 --- /dev/null +++ b/10.1.UP2/Activator/MainFrm_1.inc @@ -0,0 +1,49 @@ +{ KOL MCK } // Do not remove this line! + +procedure NewMainForm( var Result: PMainForm; AParent: PControl ); +begin + + {$IFDEF KOLCLASSES} + Result := PMainForm.Create; + {$ELSE OBJECTS} + New( Result, Create ); + {$ENDIF KOL CLASSES/OBJECTS} + Result.Form := NewForm( AParent, 'Delphi 10.1 Berlin Activator' ).SetPosition( 8, 8 ); + Applet := Result.Form; + Result.Form.Add2AutoFree( Result ); + Result.Form.Style := Result.Form.Style and not (WS_MINIMIZEBOX or WS_MAXIMIZEBOX); + Result.Form.SetClientSize( 534, 122 ); + Result.Form.OnMessage := Result.kolMainFormMessage; + Result.Form.OnShow := Result.kolMainFormShow; + Result.Form.OnDestroy := Result.kolMainFormDestroy; + Result.btnAbout := NewButton( Result.Form, '&About' ).SetPosition( 325, 16 ).SetSize( 90, 90 ); + {$IFDEF USE_MHTOOLTIP} + Result.btnAbout.Hint.Text := 'About'; + {$ENDIF USE_MHTOOLTIP} + Result.btnReset := NewButton( Result.Form, 'Re&set' ).SetPosition( 222, 16 ).SetSize( 90, 90 ); + {$IFDEF USE_MHTOOLTIP} + Result.btnReset.Hint.Text := 'Reset Delphi 10.1'; + {$ENDIF USE_MHTOOLTIP} + Result.btnExit := NewButton( Result.Form, '&Exit' ).SetPosition( 428, 16 ).SetSize( 90, 90 ); + {$IFDEF USE_MHTOOLTIP} + Result.btnExit.Hint.Text := 'Exit'; + {$ENDIF USE_MHTOOLTIP} + Result.btnRunX10 := NewButton( Result.Form, '&Run' ).SetPosition( 119, 16 ).SetSize( 90, 90 ); + {$IFDEF USE_MHTOOLTIP} + Result.btnRunX10.Hint.Text := 'Run Delphi 10.1'; + {$ENDIF USE_MHTOOLTIP} + Result.btnActive := NewButton( Result.Form, '&Active' ).SetPosition( 16, 16 ).SetSize( 90, 90 ); + {$IFDEF USE_MHTOOLTIP} + Result.btnActive.Hint.Text := 'Active Delphi 10.1'; + {$ENDIF USE_MHTOOLTIP} + Result.btnAbout.OnClick := Result.btnAboutClick; + Result.btnReset.OnClick := Result.btnResetClick; + Result.btnExit.OnClick := Result.btnExitClick; + Result.btnRunX10.OnClick := Result.btnRunX10Click; + Result.btnActive.OnClick := Result.btnActiveClick; + Result.Form.CenterOnParent.CanResize := False; + Result.Form.Perform( WM_INITMENU, 0, 0 ); + Result.kolMainFormFormCreate( Result ); + +end; + diff --git a/10.1.UP2/Activator/PatchData.inc b/10.1.UP2/Activator/PatchData.inc new file mode 100644 index 0000000..d211527 --- /dev/null +++ b/10.1.UP2/Activator/PatchData.inc @@ -0,0 +1,3407 @@ + defCglmSerialNumber = ''; + + defCglmFileDatas: array[0..255] of Byte = ( + $5B, $45, $6D, $62, $61, $72, $63, $61, $64, $65, $72, $6F, $20, $4C, $69, $63, + $65, $6E, $73, $65, $20, $4D, $61, $6E, $61, $67, $65, $6D, $65, $6E, $74, $5D, + $0D, $0A, $52, $6F, $6F, $74, $44, $69, $72, $3D, $24, $7B, $4D, $4F, $44, $55, + $4C, $45, $5F, $44, $49, $52, $7D, $5C, $2E, $2E, $0D, $0A, $4C, $69, $63, $65, + $6E, $73, $65, $44, $69, $72, $3D, $24, $7B, $52, $4F, $4F, $54, $44, $49, $52, + $7D, $5C, $4C, $69, $63, $65, $6E, $73, $65, $0D, $0A, $49, $6E, $66, $6F, $44, + $69, $72, $3D, $24, $7B, $43, $4F, $4D, $4D, $4F, $4E, $5F, $41, $50, $50, $44, + $41, $54, $41, $7D, $5C, $45, $6D, $62, $61, $72, $63, $61, $64, $65, $72, $6F, + $5C, $2E, $6C, $69, $63, $65, $6E, $73, $65, $73, $0D, $0A, $53, $6C, $69, $70, + $44, $69, $72, $3D, $24, $7B, $43, $4F, $4D, $4D, $4F, $4E, $5F, $41, $50, $50, + $44, $41, $54, $41, $7D, $5C, $45, $6D, $62, $61, $72, $63, $61, $64, $65, $72, + $6F, $5C, $0D, $0A, $52, $65, $67, $45, $78, $65, $3D, $4C, $69, $63, $65, $6E, + $73, $65, $4D, $61, $6E, $61, $67, $65, $72, $2E, $65, $78, $65, $0D, $0A, $4C, + $6F, $63, $6B, $54, $79, $70, $65, $3D, $35, $0D, $0A, $5B, $45, $6D, $62, $61, + $72, $63, $61, $64, $65, $72, $6F, $20, $53, $4C, $49, $50, $20, $46, $69, $6C, + $65, $73, $5D, $0D, $0A, $53, $4C, $49, $50, $46, $69, $6C, $65, $3D, $0D, $0A + ); + + defGenuineLicFileDatas: array[0..1919] of Byte = ( + $AA, $A5, $B7, $05, $00, $00, $07, $78, $D6, $E1, $23, $6F, $D7, $83, $D2, $45, + $8F, $73, $42, $E9, $D6, $CF, $61, $F1, $5D, $6B, $8B, $F9, $9C, $46, $CC, $74, + $1E, $DF, $B8, $D4, $40, $F7, $73, $2B, $C9, $EB, $B8, $5E, $BE, $51, $59, $99, + $F6, $DE, $26, $D9, $6F, $66, $FF, $AC, $8B, $05, $94, $38, $59, $AD, $A6, $EE, + $0B, $DC, $45, $07, $8C, $B7, $C6, $1B, $AC, $6B, $21, $B4, $D2, $8C, $15, $9F, + $72, $63, $9F, $E3, $C0, $0B, $B8, $09, $44, $84, $B6, $94, $68, $EC, $33, $71, + $AE, $F2, $9B, $76, $80, $7B, $2B, $F4, $F2, $B1, $38, $D7, $6F, $6D, $C8, $B0, + $88, $4A, $80, $48, $4D, $DC, $F0, $BE, $7C, $F9, $49, $0D, $B3, $B8, $BE, $67, + $E1, $2F, $18, $D0, $DD, $F0, $5E, $F8, $4D, $75, $B5, $FB, $A4, $3D, $F1, $1E, + $05, $9E, $B2, $B8, $3C, $AB, $7E, $64, $B0, $CD, $F6, $19, $DC, $1D, $00, $C4, + $DD, $FF, $4C, $DC, $50, $69, $88, $B3, $B4, $32, $89, $2F, $7E, $8E, $8E, $92, + $5D, $C3, $08, $51, $BB, $91, $CF, $64, $E1, $19, $5F, $96, $B2, $A0, $60, $E9, + $52, $0F, $97, $A8, $E3, $6B, $C1, $63, $64, $A9, $92, $D7, $2F, $DA, $37, $13, + $FA, $E0, $BC, $21, $BB, $48, $6C, $F8, $A5, $FA, $44, $EF, $5F, $7F, $B5, $A5, + $8D, $48, $F0, $10, $1A, $E9, $E3, $9F, $72, $9E, $6E, $01, $A2, $93, $92, $1C, + $8E, $62, $46, $A5, $A9, $BD, $23, $C3, $00, $68, $EB, $F2, $BA, $6B, $D6, $3F, + $28, $A0, $CB, $AC, $0B, $B6, $60, $7D, $E3, $A3, $DA, $57, $B0, $05, $7C, $C9, + $A5, $80, $44, $8D, $20, $1C, $C8, $86, $C3, $1E, $CE, $7E, $39, $ED, $CA, $82, + $39, $E2, $62, $75, $88, $9F, $DC, $3C, $A7, $5A, $0E, $BF, $DF, $98, $3E, $B0, + $31, $7A, $97, $80, $DE, $32, $E8, $56, $26, $EB, $D7, $84, $18, $FF, $69, $6C, + $D1, $CB, $CE, $68, $E1, $7F, $65, $87, $9E, $D7, $17, $E6, $0E, $07, $E0, $DE, + $87, $6A, $C8, $57, $29, $E1, $87, $A3, $3D, $80, $10, $52, $9F, $A8, $96, $60, + $E0, $20, $0B, $E2, $8C, $F6, $43, $F2, $36, $4B, $CA, $83, $A1, $43, $A9, $19, + $75, $F7, $AC, $EF, $14, $B8, $4B, $74, $87, $EF, $C4, $03, $AB, $5E, $47, $9A, + $FD, $8E, $34, $93, $62, $6D, $C1, $E7, $93, $58, $F1, $55, $6A, $81, $8C, $B6, + $31, $E7, $04, $0D, $D3, $E9, $C6, $29, $FD, $39, $61, $CC, $98, $96, $13, $CB, + $7B, $5A, $9E, $D0, $C3, $1A, $B1, $74, $30, $FC, $9B, $E5, $15, $C0, $58, $32, + $C9, $86, $BB, $39, $EE, $1D, $71, $E0, $8D, $B3, $5C, $9F, $10, $37, $AD, $BC, + $84, $66, $88, $16, $4A, $81, $A4, $BD, $23, $87, $31, $40, $EB, $E0, $BE, $47, + $A9, $3C, $10, $DF, $90, $BB, $10, $80, $04, $1F, $99, $AA, $F5, $38, $D1, $71, + $36, $BC, $8B, $AE, $48, $97, $1B, $21, $F4, $E6, $E7, $35, $F9, $64, $1D, $FD, + $A4, $F4, $7D, $93, $5B, $18, $B3, $C1, $B2, $19, $B4, $51, $0D, $F2, $C0, $9D, + $5F, $82, $72, $0A, $F4, $ED, $A8, $1B, $D5, $47, $43, $E8, $9E, $A5, $54, $8A, + $2F, $7F, $C9, $9E, $92, $6C, $80, $09, $1D, $DB, $A3, $A8, $15, $BF, $4B, $20, + $87, $EB, $ED, $5E, $85, $40, $23, $C1, $F5, $C8, $17, $D5, $2D, $71, $99, $CF, + $BA, $71, $88, $6A, $1D, $FA, $9E, $B0, $1A, $88, $5F, $63, $A1, $A7, $C5, $21, + $E8, $15, $6D, $9A, $DC, $F2, $59, $D0, $5A, $5D, $E6, $BE, $BD, $09, $C2, $14, + $47, $95, $D8, $B2, $35, $F3, $7C, $71, $CE, $EA, $B5, $2F, $D6, $38, $25, $9C, + $F5, $FB, $18, $98, $10, $04, $C1, $9E, $E2, $32, $C5, $3A, $40, $FA, $98, $C4, + $20, $86, $45, $45, $BA, $D8, $E7, $4B, $80, $22, $35, $9F, $C6, $F2, $30, $F3, + $5B, $3F, $C3, $AF, $95, $41, $92, $36, $24, $98, $C0, $B2, $2D, $AC, $17, $34, + $EE, $B9, $DC, $22, $A6, $27, $1D, $82, $99, $98, $7A, $EE, $1C, $64, $CD, $97, + $9F, $39, $FB, $66, $40, $D5, $DD, $D3, $64, $E8, $45, $2C, $89, $B4, $94, $5A, + $94, $5E, $64, $F4, $F2, $AD, $38, $BD, $34, $02, $D0, $F7, $CD, $5F, $98, $5F, + $7A, $CB, $D6, $D7, $50, $F3, $6A, $2A, $C5, $94, $DA, $53, $D0, $56, $70, $94, + $F8, $91, $40, $C6, $5B, $1C, $DC, $C3, $F3, $41, $FB, $34, $4B, $A7, $D8, $E1, + $53, $DB, $57, $29, $DC, $D9, $EC, $1D, $91, $63, $63, $85, $94, $AF, $67, $F8, + $38, $24, $86, $AC, $BD, $25, $C8, $77, $37, $93, $A9, $BC, $48, $DC, $2C, $08, + $87, $FF, $E1, $70, $EC, $2B, $62, $9E, $FE, $D3, $60, $81, $6C, $11, $8F, $E8, + $93, $7A, $F6, $3C, $45, $C8, $F0, $BE, $32, $85, $11, $1D, $B2, $85, $E8, $5D, + $D9, $04, $0C, $DD, $8B, $C9, $16, $E9, $02, $7B, $91, $EE, $97, $0E, $8D, $68, + $5A, $9B, $ED, $CB, $04, $89, $4D, $16, $8D, $C4, $DE, $48, $BA, $56, $28, $AA, + $AB, $90, $46, $BE, $67, $77, $96, $DC, $FE, $05, $A2, $3C, $12, $D9, $D8, $88, + $4B, $84, $17, $61, $A1, $96, $98, $24, $DF, $10, $55, $D0, $D0, $B0, $6D, $C5, + $60, $49, $C0, $B2, $D4, $18, $EC, $71, $24, $9A, $C1, $F8, $01, $9F, $3F, $08, + $95, $9B, $8A, $30, $B6, $11, $03, $DF, $D8, $93, $73, $A7, $31, $07, $D8, $98, + $DC, $22, $A5, $42, $6E, $D8, $9E, $C2, $26, $FA, $3B, $1B, $C0, $C3, $D7, $5A, + $B7, $6E, $63, $82, $99, $95, $1E, $F8, $0E, $7C, $CD, $E3, $9C, $49, $EB, $7F, + $41, $84, $90, $D4, $43, $8F, $43, $63, $D0, $81, $99, $77, $AF, $06, $45, $F0, + $AB, $A3, $34, $B1, $16, $6D, $EE, $BF, $FC, $25, $C5, $59, $49, $A2, $E5, $F0, + $1E, $A4, $6C, $4A, $E1, $AC, $AB, $16, $E2, $6C, $43, $F7, $E0, $81, $38, $A9, + $59, $7C, $DA, $AC, $8C, $21, $A7, $27, $52, $FE, $BB, $E9, $73, $F5, $55, $26, + $85, $AB, $9B, $5C, $D7, $39, $2E, $83, $E2, $FC, $0A, $8B, $01, $0F, $CE, $D4, + $E7, $2E, $F3, $70, $35, $D6, $80, $A1, $14, $AD, $34, $5B, $A2, $80, $DF, $11, + $DB, $59, $7E, $94, $94, $E8, $23, $9E, $4C, $3E, $BE, $B3, $AD, $1A, $C4, $61, + $70, $B8, $8A, $D4, $08, $AB, $63, $66, $B7, $B0, $CF, $47, $DA, $5D, $73, $8C, + $8B, $EE, $01, $D8, $79, $11, $E9, $9A, $8F, $0C, $D2, $4D, $3F, $8B, $9F, $F1, + $0A, $B9, $0D, $25, $B9, $DC, $EA, $05, $B0, $6F, $1C, $8C, $A2, $D5, $63, $E8, + $12, $2A, $B1, $C3, $A2, $07, $B7, $58, $3F, $D3, $D5, $A4, $70, $9A, $4B, $17, + $BF, $EA, $C7, $6D, $C1, $51, $04, $F7, $FF, $B3, $05, $F5, $47, $7A, $EB, $93, + $CD, $79, $84, $73, $44, $87, $E6, $9C, $62, $A5, $11, $79, $9A, $C2, $F4, $23, + $A3, $1F, $08, $82, $94, $EA, $50, $CE, $57, $4C, $81, $8D, $E3, $23, $8A, $48, + $62, $ED, $F8, $BE, $11, $AE, $17, $37, $9C, $84, $CA, $33, $F6, $35, $47, $FF, + $A8, $F6, $06, $EB, $00, $29, $F6, $F4, $D6, $26, $FF, $2B, $19, $D1, $DB, $D1, + $7F, $F5, $5B, $18, $B0, $C5, $DB, $0F, $DF, $59, $1E, $D4, $97, $90, $27, $B5, + $35, $4C, $8D, $86, $AF, $31, $92, $2B, $3D, $FD, $82, $82, $4B, $DC, $44, $59, + $83, $9B, $FB, $36, $D1, $61, $2A, $9B, $B4, $E9, $0A, $EB, $0F, $25, $96, $B9, + $93, $23, $C4, $29, $56, $F4, $DB, $81, $45, $AC, $57, $3A, $EE, $85, $89, $31, + $8E, $0C, $51, $C0, $D3, $E4, $3A, $DE, $05, $7A, $9A, $B0, $CE, $13, $EC, $44, + $05, $FF, $D4, $83, $6C, $D8, $12, $17, $FA, $C6, $C3, $28, $E4, $05, $51, $97, + $88, $9A, $00, $BB, $57, $62, $F5, $E0, $F3, $52, $CD, $13, $1E, $C2, $B7, $C3, + $1F, $D7, $31, $24, $91, $E6, $C8, $6C, $B7, $26, $42, $C1, $8F, $F0, $5C, $D4, + $3F, $69, $D6, $83, $FE, $04, $C1, $15, $50, $BB, $D0, $C8, $54, $F1, $0F, $6F, + $B4, $F3, $81, $35, $D3, $20, $2D, $EB, $96, $B1, $47, $9A, $21, $1E, $A3, $F3, + $9B, $17, $9D, $5A, $29, $D4, $8C, $F2, $19, $A3, $78, $09, $AD, $BA, $CE, $00, + $86, $10, $65, $D3, $FB, $9D, $22, $81, $0B, $49, $C5, $DA, $C3, $65, $E3, $0A, + $40, $EA, $B7, $CD, $48, $C4, $2A, $04, $9A, $ED, $C2, $78, $B1, $2C, $56, $C6, + $A7, $85, $04, $AB, $2E, $7C, $96, $E0, $CE, $0B, $C8, $73, $54, $C6, $AA, $C3, + $03, $D2, $3A, $7B, $EB, $D6, $FE, $2D, $9D, $46, $29, $A1, $C0, $9D, $66, $F7, + $1D, $5D, $C7, $D1, $81, $25, $A9, $0E, $35, $89, $B6, $DF, $4E, $D1, $55, $76, + $97, $82, $E6, $1E, $81, $45, $49, $D8, $8C, $C5, $2C, $EC, $6F, $06, $DB, $CF, + $C3, $77, $B7, $1D, $70, $80, $F6, $CC, $61, $8C, $2B, $49, $FA, $B9, $8B, $32, + $FA, $6B, $39, $B2, $D6, $F0, $1A, $9E, $37, $0E, $93, $B7, $D0, $49, $C4, $6D, + $71, $B7, $A9, $88, $51, $F6, $23, $48, $C6, $C2, $83, $1F, $A7, $13, $23, $83, + $B2, $C1, $54, $F5, $31, $38, $E6, $C4, $B0, $78, $A2, $0A, $67, $85, $D2, $8A, + $11, $A6, $4D, $66, $AD, $ED, $BB, $6B, $C6, $47, $40, $EE, $E6, $F8, $4D, $F5, + $16, $34, $F3, $99, $CC, $57, $D5, $32, $64, $9E, $E5, $A1, $2E, $91, $55, $77, + $85, $C4, $B6, $2B, $BA, $67, $1B, $F5, $DA, $88, $0D, $9D, $14, $41, $91, $97, + $FE, $07, $FB, $76, $78, $E9, $93, $F4, $05, $9D, $1F, $57, $F3, $98, $D8, $19, + $ED, $5F, $34, $E8, $CB, $CC, $7B, $B8, $75, $09, $90, $A6, $82, $65, $A7, $75, + $6B, $83, $E9, $DB, $5C, $C9, $67, $00, $BB, $A9, $98, $3C, $D6, $52, $7B, $A5, + $83, $95, $22, $D2, $01, $48, $F6, $DA, $A0, $49, $DF, $6E, $4E, $83, $AE, $D9, + $7D, $8C, $61, $4B, $E7, $AE, $D6, $58, $B5, $63, $79, $E9, $C3, $F4, $74, $CC, + $78, $68, $BE, $B2, $A0, $77, $E5, $22, $1E, $F3, $F7, $C9, $11, $9A, $1E, $42, + $BD, $FB, $9B, $66, $96, $5A, $3D, $96, $F1, $DD, $40, $E0, $19, $0B, $82, $DB, + $E9, $67, $AA, $0D, $70, $ED, $BB, $83, $52, $92, $20, $25, $9E, $EA, $B9, $11, + $8B, $2F, $16, $C8, $C7, $E7, $2B, $98, $1D, $55, $99, $DC, $BB, $0A, $C7, $3E, + $42, $F4, $9C, $E0, $73, $AE, $19, $0F, $E7, $8E, $8C, $74, $AC, $3E, $64, $BB, + $A8, $99, $75, $D7, $55, $29, $C9, $FE, $D2, $44, $A7, $35, $60, $E1, $99, $99, + $65, $A6, $0F, $14, $C0, $84, $EB, $51, $AA, $3B, $1B, $C0, $FA, $A7, $79, $B3, + $3E, $1E, $CE, $A4, $FF, $2D, $BD, $59, $08, $B7, $CD, $A7, $5F, $91, $6D, $16, + $B7, $DA, $D9, $1A, $A8, $68, $5D, $F6, $91, $AD, $77, $A5, $29, $42, $C3, $F7, + $D5, $44, $A0, $59, $2F, $A7, $A7, $AF, $6C, $E0, $08, $3A, $8E, $E1, $DB, $43, + $9F, $26, $2F, $DC, $E8, $BF, $36, $A0, $30, $2E, $C3, $D7, $D4, $16, $FA, $2B, + $2F, $E5, $E3, $FF, $2A, $FF, $35, $25, $B3, $C8, $B3, $37, $BF, $10, $0F, $D4, + $EB, $8F, $30, $C3, $7D, $53, $C5, $BF, $C9, $15, $88, $77, $24, $E3, $E4, $B6, + $22, $F8, $44, $14, $8B, $FA, $FB, $52, $BC, $5A, $28, $85, $A8, $81, $6B, $E8, + $0E, $15, $FF, $DB, $8D, $19, $9E, $51, $25, $8B, $F6, $B1, $76, $82, $02, $63, + $9D, $B1, $A7, $5A, $96, $11, $4C, $C0, $BE, $98, $54, $81, $66, $6E, $BC, $D6, + $CB, $70, $D0, $1A, $1D, $A0, $E8, $DE, $7D, $BF, $2F, $46, $DC, $FB, $B6, $00 + ); + + defTrialLicFileDatas: array[0..1919] of Byte = ( + $AA, $A5, $B7, $05, $00, $00, $07, $78, $D6, $E1, $23, $6F, $D7, $83, $D2, $45, + $8F, $73, $42, $E9, $D6, $CF, $61, $F1, $5D, $6B, $8B, $F9, $9C, $46, $CC, $74, + $1E, $DF, $B8, $D4, $40, $F7, $73, $2B, $C9, $EB, $B8, $5E, $BE, $51, $59, $99, + $F6, $DE, $26, $D9, $6F, $66, $FF, $AC, $8B, $05, $94, $38, $59, $AD, $A6, $EE, + $0B, $DC, $45, $07, $8C, $B7, $C6, $1B, $AC, $6B, $21, $B4, $D2, $8C, $15, $9F, + $72, $63, $9F, $E3, $C0, $0B, $B8, $09, $44, $84, $B6, $94, $68, $EC, $33, $71, + $AE, $F2, $9B, $76, $80, $7B, $2B, $F4, $F2, $B1, $38, $D7, $6F, $6D, $C8, $B0, + $88, $4A, $80, $48, $4D, $DC, $F0, $BE, $7C, $F9, $49, $0D, $B3, $B8, $BE, $67, + $E1, $2F, $18, $D0, $DD, $F0, $5E, $F8, $4D, $75, $B5, $FB, $A4, $3D, $F1, $1E, + $05, $9E, $B2, $B8, $3C, $AB, $7E, $64, $B0, $CD, $F6, $19, $DC, $1D, $00, $C4, + $DD, $FF, $4C, $DC, $50, $69, $88, $B3, $B4, $32, $89, $2F, $7E, $8E, $8E, $92, + $5D, $C3, $08, $51, $BB, $91, $CF, $64, $E1, $19, $5F, $96, $B2, $A0, $60, $E9, + $52, $0F, $97, $A8, $E3, $6B, $C1, $63, $64, $A9, $92, $D7, $2F, $DA, $37, $13, + $FA, $E0, $BC, $21, $BB, $48, $6C, $F8, $A5, $FA, $44, $EF, $5F, $7F, $B5, $A5, + $8D, $48, $F0, $10, $1A, $E9, $E3, $9F, $72, $9E, $6E, $01, $A2, $93, $92, $1C, + $8E, $62, $46, $A5, $A9, $BD, $23, $C3, $00, $68, $EB, $F2, $BA, $6B, $D6, $3F, + $28, $A0, $CB, $AC, $0B, $B6, $60, $7D, $E3, $A3, $DA, $57, $B0, $05, $7C, $C9, + $A5, $80, $44, $8D, $20, $1C, $C8, $86, $C3, $1E, $CE, $7E, $39, $ED, $CA, $82, + $39, $E2, $62, $75, $88, $9F, $DC, $3C, $A7, $5A, $0E, $BF, $DF, $98, $3E, $B0, + $31, $7A, $97, $80, $DE, $32, $E8, $56, $26, $EB, $D7, $84, $18, $FF, $69, $6C, + $D1, $CB, $CE, $68, $E1, $7F, $65, $87, $9E, $D7, $17, $E6, $0E, $07, $E0, $DE, + $87, $6A, $C8, $57, $29, $E1, $87, $A3, $3D, $80, $10, $52, $9F, $A8, $96, $60, + $E0, $20, $0B, $E2, $8C, $F6, $43, $F2, $36, $4B, $CA, $83, $A1, $43, $A9, $19, + $75, $F7, $AC, $EF, $14, $B8, $4B, $74, $87, $EF, $C4, $03, $AB, $5E, $47, $9A, + $FD, $8E, $34, $93, $62, $6D, $C1, $E7, $93, $58, $F1, $55, $6A, $81, $8C, $B6, + $31, $E7, $04, $0D, $D3, $E9, $C6, $29, $FD, $39, $61, $CC, $98, $96, $13, $CB, + $7B, $5A, $9E, $D0, $C3, $1A, $B1, $74, $30, $FC, $9B, $E5, $15, $C0, $58, $32, + $C9, $86, $BB, $39, $EE, $1D, $71, $E0, $8D, $B3, $5C, $9F, $10, $37, $AD, $BC, + $84, $66, $88, $16, $4A, $81, $A4, $BD, $23, $87, $31, $40, $EB, $E0, $BE, $47, + $A9, $3C, $10, $DF, $90, $BB, $10, $80, $04, $1F, $99, $AA, $F5, $38, $D1, $71, + $36, $BC, $8B, $AE, $48, $97, $1B, $21, $F4, $E6, $E7, $35, $F9, $64, $1D, $FD, + $A4, $F4, $7D, $93, $5B, $18, $B3, $C1, $B2, $19, $B4, $51, $0D, $F2, $C0, $9D, + $5F, $82, $72, $0A, $F4, $ED, $A8, $1B, $D5, $47, $43, $E8, $9E, $A5, $54, $8A, + $2F, $7F, $C9, $9E, $92, $6C, $80, $09, $1D, $DB, $A3, $A8, $15, $BF, $4B, $20, + $87, $EB, $ED, $5E, $85, $40, $23, $C1, $F5, $C8, $17, $D5, $2D, $71, $99, $CF, + $BA, $71, $88, $6A, $1D, $FA, $9E, $B0, $1A, $88, $5F, $63, $A1, $A7, $C5, $21, + $E8, $15, $6D, $9A, $DC, $F2, $59, $D0, $5A, $5D, $E6, $BE, $BD, $09, $C2, $14, + $47, $95, $D8, $B2, $35, $F3, $7C, $71, $CE, $EA, $B5, $2F, $D6, $38, $25, $9C, + $F5, $FB, $18, $98, $10, $04, $C1, $9E, $E2, $32, $C5, $3A, $40, $FA, $98, $C4, + $20, $86, $45, $45, $BA, $D8, $E7, $4B, $80, $22, $35, $9F, $C6, $F2, $30, $F3, + $5B, $3F, $C3, $AF, $95, $41, $92, $36, $24, $98, $C0, $B2, $2D, $AC, $17, $34, + $EE, $B9, $DC, $22, $A6, $27, $1D, $82, $99, $98, $7A, $EE, $1C, $64, $CD, $97, + $9F, $39, $FB, $66, $40, $D5, $DD, $D3, $64, $E8, $45, $2C, $89, $B4, $94, $5A, + $94, $5E, $64, $F4, $F2, $AD, $38, $BD, $34, $02, $D0, $F7, $CD, $5F, $98, $5F, + $7A, $CB, $D6, $D7, $50, $F3, $6A, $2A, $C5, $94, $DA, $53, $D0, $56, $70, $94, + $F8, $91, $40, $C6, $5B, $1C, $DC, $C3, $F3, $41, $FB, $34, $4B, $A7, $D8, $E1, + $53, $DB, $57, $29, $DC, $D9, $EC, $1D, $91, $63, $63, $85, $94, $AF, $67, $F8, + $38, $24, $86, $AC, $BD, $25, $C8, $77, $37, $93, $A9, $BC, $48, $DC, $2C, $08, + $87, $FF, $E1, $70, $EC, $2B, $62, $9E, $FE, $D3, $60, $81, $6C, $11, $8F, $E8, + $93, $7A, $F6, $3C, $45, $C8, $F0, $BE, $32, $85, $11, $1D, $B2, $85, $E8, $5D, + $D9, $04, $0C, $DD, $8B, $C9, $16, $E9, $02, $7B, $91, $EE, $97, $0E, $8D, $68, + $5A, $9B, $ED, $CB, $04, $89, $4D, $16, $8D, $C4, $DE, $48, $BA, $56, $28, $AA, + $AB, $90, $46, $BE, $67, $77, $96, $DC, $FE, $05, $A2, $3C, $12, $D9, $D8, $88, + $4B, $84, $17, $61, $A1, $96, $98, $24, $DF, $10, $55, $D0, $D0, $B0, $6D, $C5, + $60, $49, $C0, $B2, $D4, $18, $EC, $71, $24, $9A, $C1, $F8, $01, $9F, $3F, $08, + $95, $9B, $8A, $30, $B6, $11, $03, $DF, $D8, $93, $73, $A7, $31, $07, $D8, $98, + $DC, $22, $A5, $42, $6E, $D8, $9E, $C2, $26, $FA, $3B, $1B, $C0, $C3, $D7, $5A, + $B7, $6E, $63, $82, $99, $95, $1E, $F8, $0E, $7C, $CD, $E3, $9C, $49, $EB, $7F, + $41, $84, $90, $D4, $43, $8F, $43, $63, $D0, $81, $99, $77, $AF, $06, $45, $F0, + $AB, $A3, $34, $B1, $16, $6D, $EE, $BF, $FC, $25, $C5, $59, $49, $A2, $E5, $F0, + $1E, $A4, $6C, $4A, $E1, $AC, $AB, $16, $E2, $6C, $43, $F7, $E0, $81, $38, $A9, + $59, $7C, $DA, $AC, $8C, $21, $A7, $27, $52, $FE, $BB, $E9, $73, $F5, $55, $26, + $85, $AB, $9B, $5C, $D7, $39, $2E, $83, $E2, $FC, $0A, $8B, $01, $0F, $CE, $D4, + $E7, $2E, $F3, $70, $35, $D6, $80, $A1, $14, $AD, $34, $5B, $A2, $80, $DF, $11, + $DB, $59, $7E, $94, $94, $E8, $23, $9E, $4C, $3E, $BE, $B3, $AD, $1A, $C4, $61, + $70, $B8, $8A, $D4, $08, $AB, $63, $66, $B7, $B0, $CF, $47, $DA, $5D, $73, $8C, + $8B, $EE, $01, $D8, $79, $11, $E9, $9A, $8F, $0C, $D2, $4D, $3F, $8B, $9F, $F1, + $0A, $B9, $0D, $25, $B9, $DC, $EA, $05, $B0, $6F, $1C, $8C, $A2, $D5, $63, $E8, + $12, $2A, $B1, $C3, $A2, $07, $B7, $58, $3F, $D3, $D5, $A4, $70, $9A, $4B, $17, + $BF, $EA, $C7, $6D, $C1, $51, $04, $F7, $FF, $B3, $05, $F5, $47, $7A, $EB, $93, + $CD, $79, $84, $73, $44, $87, $E6, $9C, $62, $A5, $11, $79, $9A, $C2, $F4, $23, + $A3, $1F, $08, $82, $94, $EA, $50, $CE, $57, $4C, $81, $8D, $E3, $23, $8A, $48, + $62, $ED, $F8, $BE, $11, $AE, $17, $37, $9C, $84, $CA, $33, $F6, $35, $47, $FF, + $A8, $F6, $06, $EB, $00, $29, $F6, $F4, $D6, $26, $FF, $2B, $19, $D1, $DB, $D1, + $7F, $F5, $5B, $18, $B0, $C5, $DB, $0F, $DF, $59, $1E, $D4, $97, $90, $27, $B5, + $35, $4C, $8D, $86, $AF, $31, $92, $2B, $3D, $FD, $82, $82, $4B, $DC, $44, $59, + $83, $9B, $FB, $36, $D1, $61, $2A, $9B, $B4, $E9, $0A, $EB, $0F, $25, $96, $B9, + $93, $23, $C4, $29, $56, $F4, $DB, $81, $45, $AC, $57, $3A, $EE, $85, $89, $31, + $8E, $0C, $51, $C0, $D3, $E4, $3A, $DE, $05, $7A, $9A, $B0, $CE, $13, $EC, $44, + $05, $FF, $D4, $83, $6C, $D8, $12, $17, $FA, $C6, $C3, $28, $E4, $05, $51, $97, + $88, $9A, $00, $BB, $57, $62, $F5, $E0, $F3, $52, $CD, $13, $1E, $C2, $B7, $C3, + $1F, $D7, $31, $24, $91, $E6, $C8, $6C, $B7, $26, $42, $C1, $8F, $F0, $5C, $D4, + $3F, $69, $D6, $83, $FE, $04, $C1, $15, $50, $BB, $D0, $C8, $54, $F1, $0F, $6F, + $B4, $F3, $81, $35, $D3, $20, $2D, $EB, $96, $B1, $47, $9A, $21, $1E, $A3, $F3, + $9B, $17, $9D, $5A, $29, $D4, $8C, $F2, $19, $A3, $78, $09, $AD, $BA, $CE, $00, + $86, $10, $65, $D3, $FB, $9D, $22, $81, $0B, $49, $C5, $DA, $C3, $65, $E3, $0A, + $40, $EA, $B7, $CD, $48, $C4, $2A, $04, $9A, $ED, $C2, $78, $B1, $2C, $56, $C6, + $A7, $85, $04, $AB, $2E, $7C, $96, $E0, $CE, $0B, $C8, $73, $54, $C6, $AA, $C3, + $03, $D2, $3A, $7B, $EB, $D6, $FE, $2D, $9D, $46, $29, $A1, $C0, $9D, $66, $F7, + $1D, $5D, $C7, $D1, $81, $25, $A9, $0E, $35, $89, $B6, $DF, $4E, $D1, $55, $76, + $97, $82, $E6, $1E, $81, $45, $49, $D8, $8C, $C5, $2C, $EC, $6F, $06, $DB, $CF, + $C3, $77, $B7, $1D, $70, $80, $F6, $CC, $61, $8C, $2B, $49, $FA, $B9, $8B, $32, + $FA, $6B, $39, $B2, $D6, $F0, $1A, $9E, $37, $0E, $93, $B7, $D0, $49, $C4, $6D, + $71, $B7, $A9, $88, $51, $F6, $23, $48, $C6, $C2, $83, $1F, $A7, $13, $23, $83, + $B2, $C1, $54, $F5, $31, $38, $E6, $C4, $B0, $78, $A2, $0A, $67, $85, $D2, $8A, + $11, $A6, $4D, $66, $AD, $ED, $BB, $6B, $C6, $47, $40, $EE, $E6, $F8, $4D, $F5, + $16, $34, $F3, $99, $CC, $57, $D5, $32, $64, $9E, $E5, $A1, $2E, $91, $55, $77, + $85, $C4, $B6, $2B, $BA, $67, $1B, $F5, $DA, $88, $0D, $9D, $14, $41, $91, $97, + $FE, $07, $FB, $76, $78, $E9, $93, $F4, $05, $9D, $1F, $57, $F3, $98, $D8, $19, + $ED, $5F, $34, $E8, $CB, $CC, $7B, $B8, $75, $09, $90, $A6, $82, $65, $A7, $75, + $6B, $83, $E9, $DB, $5C, $C9, $67, $00, $BB, $A9, $98, $3C, $D6, $52, $7B, $A5, + $83, $95, $22, $D2, $01, $48, $F6, $DA, $A0, $49, $DF, $6E, $4E, $83, $AE, $D9, + $7D, $8C, $61, $4B, $E7, $AE, $D6, $58, $B5, $63, $79, $E9, $C3, $F4, $74, $CC, + $78, $68, $BE, $B2, $A0, $77, $E5, $22, $1E, $F3, $F7, $C9, $11, $9A, $1E, $42, + $BD, $FB, $9B, $66, $96, $5A, $3D, $96, $F1, $DD, $40, $E0, $19, $0B, $82, $DB, + $E9, $67, $AA, $0D, $70, $ED, $BB, $83, $52, $92, $20, $25, $9E, $EA, $B9, $11, + $8B, $2F, $16, $C8, $C7, $E7, $2B, $98, $1D, $55, $99, $DC, $BB, $0A, $C7, $3E, + $42, $F4, $9C, $E0, $73, $AE, $19, $0F, $E7, $8E, $8C, $74, $AC, $3E, $64, $BB, + $A8, $99, $75, $D7, $55, $29, $C9, $FE, $D2, $44, $A7, $35, $60, $E1, $99, $99, + $65, $A6, $0F, $14, $C0, $84, $EB, $51, $AA, $3B, $1B, $C0, $FA, $A7, $79, $B3, + $3E, $1E, $CE, $A4, $FF, $2D, $BD, $59, $08, $B7, $CD, $A7, $5F, $91, $6D, $16, + $B7, $DA, $D9, $1A, $A8, $68, $5D, $F6, $91, $AD, $77, $A5, $29, $42, $C3, $F7, + $D5, $44, $A0, $59, $2F, $A7, $A7, $AF, $6C, $E0, $08, $3A, $8E, $E1, $DB, $43, + $9F, $26, $2F, $DC, $E8, $BF, $36, $A0, $30, $2E, $C3, $D7, $D4, $16, $FA, $2B, + $2F, $E5, $E3, $FF, $2A, $FF, $35, $25, $B3, $C8, $B3, $37, $BF, $10, $0F, $D4, + $EB, $8F, $30, $C3, $7D, $53, $C5, $BF, $C9, $15, $88, $77, $24, $E3, $E4, $B6, + $22, $F8, $44, $14, $8B, $FA, $FB, $52, $BC, $5A, $28, $85, $A8, $81, $6B, $E8, + $0E, $15, $FF, $DB, $8D, $19, $9E, $51, $25, $8B, $F6, $B1, $76, $82, $02, $63, + $9D, $B1, $A7, $5A, $96, $11, $4C, $C0, $BE, $98, $54, $81, $66, $6E, $BC, $D6, + $CB, $70, $D0, $1A, $1D, $A0, $E8, $DE, $7D, $BF, $2F, $46, $DC, $FB, $B6, $00 + ); + + defBdsPatchDllDatas: array[0..13823] of Byte = ( + $4D, $5A, $90, $00, $03, $00, $00, $00, $04, $00, $00, $00, $FF, $FF, $00, $00, + $B8, $00, $00, $00, $00, $00, $00, $00, $40, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $D8, $00, $00, $00, + $0E, $1F, $BA, $0E, $00, $B4, $09, $CD, $21, $B8, $01, $4C, $CD, $21, $54, $68, + $69, $73, $20, $70, $72, $6F, $67, $72, $61, $6D, $20, $63, $61, $6E, $6E, $6F, + $74, $20, $62, $65, $20, $72, $75, $6E, $20, $69, $6E, $20, $44, $4F, $53, $20, + $6D, $6F, $64, $65, $2E, $0D, $0D, $0A, $24, $00, $00, $00, $00, $00, $00, $00, + $C9, $E7, $94, $1A, $8D, $86, $FA, $49, $8D, $86, $FA, $49, $8D, $86, $FA, $49, + $68, $DF, $FE, $48, $88, $86, $FA, $49, $84, $FE, $69, $49, $88, $86, $FA, $49, + $8D, $86, $FB, $49, $A7, $86, $FA, $49, $7F, $DF, $F3, $48, $8A, $86, $FA, $49, + $7F, $DF, $FA, $48, $8C, $86, $FA, $49, $7F, $DF, $05, $49, $8C, $86, $FA, $49, + $7F, $DF, $F8, $48, $8C, $86, $FA, $49, $52, $69, $63, $68, $8D, $86, $FA, $49, + $00, $00, $00, $00, $00, $00, $00, $00, $50, $45, $00, $00, $4C, $01, $05, $00, + $E1, $70, $F1, $55, $00, $00, $00, $00, $00, $00, $00, $00, $E0, $00, $02, $21, + $0B, $01, $0E, $00, $00, $1C, $00, $00, $00, $18, $00, $00, $00, $00, $00, $00, + $80, $18, $00, $00, $00, $10, $00, $00, $00, $30, $00, $00, $00, $00, $00, $10, + $00, $10, $00, $00, $00, $02, $00, $00, $05, $00, $01, $00, $00, $00, $00, $00, + $05, $00, $01, $00, $00, $00, $00, $00, $00, $70, $00, $00, $00, $04, $00, $00, + $FD, $77, $00, $00, $02, $00, $40, $05, $00, $00, $10, $00, $00, $10, $00, $00, + $00, $00, $10, $00, $00, $10, $00, $00, $00, $00, $00, $00, $10, $00, $00, $00, + $B0, $36, $00, $00, $6B, $00, $00, $00, $28, $38, $00, $00, $3C, $00, $00, $00, + $00, $50, $00, $00, $E0, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $60, $00, $00, $E0, $01, $00, $00, + $30, $36, $00, $00, $1C, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $50, $36, $00, $00, $40, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $30, $00, $00, $B0, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $2E, $74, $65, $78, $74, $00, $00, $00, $0D, $1A, $00, $00, $00, $10, $00, $00, + $00, $1C, $00, $00, $00, $04, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $20, $00, $00, $60, $2E, $72, $64, $61, $74, $61, $00, $00, + $32, $0C, $00, $00, $00, $30, $00, $00, $00, $0E, $00, $00, $00, $20, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $00, $00, $40, + $2E, $64, $61, $74, $61, $00, $00, $00, $8C, $05, $00, $00, $00, $40, $00, $00, + $00, $04, $00, $00, $00, $2E, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $40, $00, $00, $C0, $2E, $72, $73, $72, $63, $00, $00, $00, + $E0, $01, $00, $00, $00, $50, $00, $00, $00, $02, $00, $00, $00, $32, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $00, $00, $40, + $2E, $72, $65, $6C, $6F, $63, $00, $00, $E0, $01, $00, $00, $00, $60, $00, $00, + $00, $02, $00, $00, $00, $34, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $40, $00, $00, $42, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $51, $53, $56, $33, $F6, $56, $68, $80, $00, $00, $00, $6A, $03, $56, $6A, $01, + $68, $00, $00, $00, $80, $51, $FF, $15, $00, $30, $00, $10, $8B, $D8, $83, $FB, + $FF, $0F, $84, $81, $00, $00, $00, $57, $8D, $44, $24, $0C, $89, $74, $24, $0C, + $50, $53, $FF, $15, $04, $30, $00, $10, $8B, $F8, $83, $FF, $FF, $74, $61, $39, + $74, $24, $0C, $75, $5B, $55, $56, $56, $56, $6A, $02, $56, $53, $FF, $15, $08, + $30, $00, $10, $8B, $E8, $83, $FD, $FF, $74, $45, $56, $56, $56, $6A, $04, $55, + $FF, $15, $0C, $30, $00, $10, $8B, $D0, $85, $D2, $74, $2C, $83, $CE, $FF, $8B, + $CA, $85, $FF, $74, $1A, $0F, $B6, $01, $8D, $49, $01, $33, $C6, $C1, $EE, $08, + $0F, $B6, $C0, $33, $34, $85, $D0, $30, $00, $10, $83, $EF, $01, $75, $E6, $52, + $F7, $D6, $FF, $15, $10, $30, $00, $10, $55, $FF, $15, $14, $30, $00, $10, $5D, + $53, $FF, $15, $14, $30, $00, $10, $5F, $8B, $C6, $5E, $5B, $59, $C3, $CC, $CC, + $C7, $44, $24, $10, $00, $00, $00, $00, $C7, $44, $24, $0C, $00, $00, $00, $00, + $FF, $25, $A4, $30, $00, $10, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $FF, $25, $A8, $30, $00, $10, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $33, $C0, $40, $C2, $04, $00, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $51, $81, $B9, $F0, $0F, $00, $00, $78, $56, $34, $12, $53, $8D, $99, $F0, $0F, + $00, $00, $74, $52, $56, $57, $8B, $3D, $18, $30, $00, $10, $8D, $44, $24, $0C, + $50, $6A, $40, $8D, $B1, $40, $F6, $02, $00, $6A, $02, $56, $FF, $D7, $B8, $B3, + $01, $00, $00, $66, $89, $06, $8D, $44, $24, $0C, $50, $FF, $74, $24, $10, $6A, + $02, $56, $FF, $D7, $8D, $44, $24, $0C, $50, $6A, $40, $6A, $04, $53, $FF, $D7, + $8D, $44, $24, $0C, $C7, $03, $78, $56, $34, $12, $50, $FF, $74, $24, $10, $6A, + $04, $53, $FF, $D7, $5F, $5E, $5B, $59, $C3, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $53, $8B, $5C, $24, $14, $56, $57, $8B, $7C, $24, $18, $53, $57, $FF, $74, $24, + $1C, $FF, $74, $24, $1C, $FF, $15, $44, $45, $00, $10, $8B, $F0, $85, $F6, $75, + $5C, $85, $DB, $74, $58, $F7, $C7, $00, $00, $FF, $FF, $74, $50, $66, $39, $07, + $74, $4B, $8B, $57, $04, $F7, $C2, $00, $00, $FF, $FF, $74, $40, $8B, $CA, $66, + $39, $02, $74, $13, $66, $8B, $01, $83, $C1, $02, $66, $83, $F8, $5C, $0F, $44, + $D1, $66, $83, $39, $00, $75, $ED, $0F, $B7, $02, $83, $F8, $73, $74, $05, $83, + $F8, $53, $75, $17, $68, $D0, $34, $00, $10, $52, $FF, $15, $1C, $30, $00, $10, + $85, $C0, $75, $07, $8B, $0B, $E8, $15, $FF, $FF, $FF, $8B, $C6, $5F, $5E, $5B, + $C2, $10, $00, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $50, $A1, $54, $45, $00, $10, $3B, $44, $24, $04, $75, $06, $8B, $45, $B4, $C6, + $00, $01, $58, $FF, $25, $58, $45, $00, $10, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $53, $8B, $5C, $24, $08, $56, $8B, $74, $24, $10, $57, $56, $53, $FF, $15, $3C, + $45, $00, $10, $8B, $F8, $85, $FF, $75, $77, $3B, $1D, $5C, $45, $00, $10, $75, + $6F, $F7, $C6, $00, $00, $FF, $FF, $74, $67, $B9, $F4, $34, $00, $10, $8B, $C6, + $8A, $10, $3A, $11, $75, $1A, $84, $D2, $74, $12, $8A, $50, $01, $3A, $51, $01, + $75, $0E, $83, $C0, $02, $83, $C1, $02, $84, $D2, $75, $E4, $33, $C0, $EB, $05, + $1B, $C0, $83, $C8, $01, $85, $C0, $74, $32, $B8, $10, $35, $00, $10, $66, $90, + $8A, $0E, $3A, $08, $75, $1A, $84, $C9, $74, $12, $8A, $4E, $01, $3A, $48, $01, + $75, $0E, $83, $C6, $02, $83, $C0, $02, $84, $C9, $75, $E4, $33, $C0, $EB, $05, + $1B, $C0, $83, $C8, $01, $85, $C0, $8B, $C7, $75, $05, $B8, $E0, $10, $00, $10, + $5F, $5E, $5B, $C2, $08, $00, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $53, $55, $8B, $6C, $24, $0C, $8B, $5C, $24, $10, $8B, $4C, $24, $14, $8B, $44, + $24, $18, $8B, $54, $24, $1C, $F0, $0F, $C7, $4D, $00, $5D, $5B, $C2, $14, $00, + $74, $67, $60, $8B, $4D, $0C, $03, $C8, $8D, $51, $02, $81, $3A, $49, $6E, $74, + $65, $75, $4F, $81, $7A, $04, $72, $6C, $6F, $63, $75, $46, $81, $7A, $08, $6B, + $65, $64, $43, $75, $3D, $81, $7A, $0C, $6F, $6D, $70, $61, $75, $34, $81, $7A, + $10, $72, $65, $45, $78, $75, $2B, $81, $7A, $14, $63, $68, $61, $6E, $75, $22, + $81, $7A, $18, $67, $65, $36, $34, $75, $19, $80, $7A, $1C, $00, $75, $13, $B8, + $B0, $12, $00, $10, $8B, $55, $14, $89, $02, $61, $33, $C0, $FF, $25, $4C, $45, + $00, $10, $61, $FF, $25, $50, $45, $00, $10, $B8, $7A, $00, $00, $C0, $FF, $25, + $4C, $45, $00, $10, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $51, $56, $8B, $35, $24, $30, $00, $10, $68, $30, $35, $00, $10, $FF, $D6, $68, + $4C, $35, $00, $10, $A3, $60, $45, $00, $10, $FF, $D6, $8B, $35, $28, $30, $00, + $10, $68, $3C, $45, $00, $10, $68, $64, $35, $00, $10, $FF, $35, $60, $45, $00, + $10, $A3, $5C, $45, $00, $10, $FF, $D6, $BA, $10, $12, $00, $10, $8B, $C8, $E8, + $1A, $0B, $00, $00, $68, $74, $35, $00, $10, $FF, $35, $64, $45, $00, $10, $FF, + $D6, $85, $C0, $0F, $84, $6F, $01, $00, $00, $83, $3D, $60, $45, $00, $10, $00, + $0F, $84, $62, $01, $00, $00, $8B, $0D, $64, $45, $00, $10, $53, $55, $8D, $98, + $00, $FC, $FF, $FF, $8B, $51, $3C, $57, $8D, $78, $C0, $8B, $6C, $0A, $2C, $03, + $E9, $8B, $4C, $0A, $1C, $03, $CD, $3B, $DD, $89, $4C, $24, $10, $0F, $42, $DD, + $3B, $FB, $0F, $86, $2D, $01, $00, $00, $8D, $77, $03, $0F, $1F, $44, $00, $00, + $8B, $07, $25, $FF, $F8, $FF, $00, $3D, $C1, $E8, $1F, $00, $0F, $85, $E4, $00, + $00, $00, $8D, $56, $08, $8B, $CE, $3B, $F2, $0F, $83, $D7, $00, $00, $00, $90, + $8B, $01, $25, $FF, $F8, $FF, $00, $3D, $80, $E0, $01, $00, $74, $0A, $41, $3B, + $CA, $72, $ED, $E9, $BE, $00, $00, $00, $3B, $CA, $0F, $83, $B6, $00, $00, $00, + $83, $C1, $03, $8D, $51, $08, $3B, $CA, $0F, $83, $A8, $00, $00, $00, $66, $90, + $8B, $01, $25, $FF, $C7, $FF, $00, $3D, $88, $45, $13, $00, $74, $0A, $41, $3B, + $CA, $72, $ED, $E9, $8E, $00, $00, $00, $3B, $CA, $0F, $83, $86, $00, $00, $00, + $83, $C1, $03, $8D, $41, $08, $3B, $C8, $0F, $83, $78, $00, $00, $00, $BA, $0F, + $85, $00, $00, $66, $39, $11, $74, $07, $41, $3B, $C8, $72, $F6, $EB, $67, $3B, + $C8, $73, $63, $83, $C1, $06, $8D, $51, $08, $3B, $CA, $73, $59, $0F, $1F, $00, + $8B, $01, $25, $FF, $C7, $FF, $00, $3D, $8B, $45, $0C, $00, $74, $07, $41, $3B, + $CA, $72, $ED, $EB, $41, $3B, $CA, $73, $3D, $83, $C1, $03, $8D, $41, $08, $3B, + $C8, $73, $33, $BA, $0F, $84, $00, $00, $66, $39, $11, $74, $07, $41, $3B, $C8, + $72, $F6, $EB, $22, $3B, $C8, $73, $1E, $8D, $51, $06, $03, $51, $02, $3B, $D5, + $72, $14, $3B, $54, $24, $10, $73, $0E, $80, $3A, $B8, $75, $09, $81, $7A, $01, + $7A, $00, $00, $C0, $74, $10, $4F, $4E, $3B, $FB, $0F, $87, $00, $FF, $FF, $FF, + $5F, $5D, $5B, $5E, $59, $C3, $8D, $41, $06, $A3, $50, $45, $00, $10, $8D, $42, + $05, $68, $40, $45, $00, $10, $BA, $D0, $12, $00, $10, $A3, $4C, $45, $00, $10, + $E8, $99, $09, $00, $00, $5F, $5D, $5B, $5E, $59, $C3, $CC, $CC, $CC, $CC, $CC, + $81, $EC, $14, $01, $00, $00, $53, $8B, $1D, $50, $30, $00, $10, $55, $56, $57, + $33, $FF, $33, $ED, $57, $6A, $01, $68, $68, $45, $00, $10, $FF, $D3, $8B, $35, + $6C, $30, $00, $10, $85, $C0, $74, $1D, $83, $FF, $20, $73, $04, $6A, $00, $EB, + $02, $6A, $01, $FF, $D6, $6A, $00, $6A, $01, $68, $68, $45, $00, $10, $47, $FF, + $D3, $85, $C0, $75, $E3, $39, $2D, $6C, $45, $00, $10, $75, $1A, $6A, $00, $6A, + $00, $6A, $00, $FF, $15, $44, $30, $00, $10, $A3, $6C, $45, $00, $10, $85, $C0, + $75, $0A, $8D, $68, $09, $EB, $05, $BD, $01, $00, $00, $00, $6A, $00, $68, $68, + $45, $00, $10, $FF, $15, $40, $30, $00, $10, $85, $ED, $0F, $85, $BC, $00, $00, + $00, $68, $8C, $35, $00, $10, $FF, $15, $24, $30, $00, $10, $68, $44, $45, $00, + $10, $68, $A0, $35, $00, $10, $50, $A3, $64, $45, $00, $10, $FF, $15, $28, $30, + $00, $10, $BA, $60, $11, $00, $10, $8B, $C8, $E8, $E0, $08, $00, $00, $85, $C0, + $0F, $85, $87, $00, $00, $00, $32, $C0, $8D, $7C, $24, $10, $B9, $14, $01, $00, + $00, $F3, $AA, $8D, $44, $24, $10, $C7, $44, $24, $10, $14, $01, $00, $00, $50, + $FF, $15, $20, $30, $00, $10, $85, $C0, $74, $13, $83, $7C, $24, $20, $02, $75, + $07, $83, $7C, $24, $14, $05, $77, $05, $E8, $43, $FD, $FF, $FF, $33, $FF, $57, + $6A, $01, $68, $68, $45, $00, $10, $FF, $D3, $85, $C0, $74, $20, $0F, $1F, $00, + $83, $FF, $20, $73, $04, $6A, $00, $EB, $02, $6A, $01, $FF, $D6, $6A, $00, $6A, + $01, $68, $68, $45, $00, $10, $47, $FF, $D3, $85, $C0, $75, $E3, $83, $3D, $6C, + $45, $00, $10, $00, $74, $0A, $B9, $01, $00, $00, $00, $E8, $ED, $06, $00, $00, + $6A, $00, $68, $68, $45, $00, $10, $FF, $15, $40, $30, $00, $10, $5F, $5E, $5D, + $5B, $81, $C4, $14, $01, $00, $00, $C3, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $53, $8B, $1D, $50, $30, $00, $10, $56, $33, $F6, $56, $6A, $01, $68, $68, $45, + $00, $10, $FF, $D3, $85, $C0, $74, $26, $57, $8B, $3D, $6C, $30, $00, $10, $90, + $83, $FE, $20, $73, $04, $6A, $00, $EB, $02, $6A, $01, $FF, $D7, $6A, $00, $6A, + $01, $68, $68, $45, $00, $10, $46, $FF, $D3, $85, $C0, $75, $E3, $5F, $83, $3D, + $6C, $45, $00, $10, $00, $5E, $5B, $74, $07, $33, $C9, $E8, $7D, $06, $00, $00, + $6A, $00, $68, $68, $45, $00, $10, $FF, $15, $40, $30, $00, $10, $E9, $51, $07, + $00, $00, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $51, $57, $68, $AC, $35, $00, $10, $FF, $15, $2C, $30, $00, $10, $8B, $F8, $85, + $FF, $0F, $84, $80, $00, $00, $00, $53, $56, $68, $C8, $35, $00, $10, $57, $FF, + $15, $28, $30, $00, $10, $8B, $1D, $18, $30, $00, $10, $8B, $F0, $85, $F6, $74, + $24, $8D, $44, $24, $0C, $50, $6A, $40, $6A, $05, $56, $FF, $D3, $8D, $44, $24, + $0C, $C7, $06, $33, $C0, $C2, $0C, $50, $FF, $74, $24, $10, $C6, $46, $04, $00, + $6A, $FF, $56, $FF, $D3, $68, $D8, $35, $00, $10, $57, $FF, $15, $28, $30, $00, + $10, $8B, $F0, $85, $F6, $74, $24, $8D, $44, $24, $0C, $50, $6A, $40, $6A, $05, + $56, $FF, $D3, $8D, $44, $24, $0C, $C7, $06, $33, $C0, $C2, $0C, $50, $FF, $74, + $24, $10, $C6, $46, $04, $00, $6A, $FF, $56, $FF, $D3, $5E, $5B, $C6, $05, $48, + $45, $00, $10, $00, $5F, $59, $C3, $C6, $05, $48, $45, $00, $10, $01, $5F, $59, + $C3, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $81, $EC, $14, $04, $00, $00, $53, $56, $57, $6A, $00, $FF, $15, $24, $30, $00, + $10, $8B, $D8, $8D, $44, $24, $10, $68, $08, $02, $00, $00, $50, $53, $FF, $15, + $30, $30, $00, $10, $66, $83, $7C, $24, $10, $00, $8D, $4C, $24, $10, $8B, $F1, + $74, $13, $66, $8B, $01, $83, $C1, $02, $66, $83, $F8, $5C, $0F, $44, $F1, $66, + $83, $39, $00, $75, $ED, $8B, $3D, $1C, $30, $00, $10, $68, $EC, $35, $00, $10, + $56, $FF, $D7, $85, $C0, $75, $25, $8D, $4C, $24, $10, $E8, $10, $F8, $FF, $FF, + $3D, $AB, $5A, $31, $A1, $74, $07, $3D, $E2, $F5, $99, $11, $75, $72, $8D, $83, + $3D, $14, $05, $00, $8D, $BB, $04, $46, $26, $00, $EB, $28, $68, $FC, $35, $00, + $10, $56, $FF, $D7, $85, $C0, $75, $58, $8D, $4C, $24, $10, $E8, $DF, $F7, $FF, + $FF, $3D, $5C, $A9, $89, $91, $75, $48, $8D, $83, $E5, $82, $1E, $00, $8D, $BB, + $18, $1A, $67, $00, $8B, $35, $18, $30, $00, $10, $A3, $54, $45, $00, $10, $8B, + $07, $A3, $58, $45, $00, $10, $8D, $44, $24, $0C, $50, $6A, $40, $6A, $04, $57, + $FF, $D6, $8D, $44, $24, $0C, $C7, $07, $F0, $11, $00, $10, $50, $FF, $74, $24, + $10, $6A, $04, $57, $FF, $D6, $E8, $75, $FE, $FF, $FF, $E8, $B0, $FC, $FF, $FF, + $5F, $5E, $5B, $81, $C4, $14, $04, $00, $00, $C3, $CC, $CC, $CC, $CC, $CC, $CC, + $8B, $44, $24, $08, $83, $F8, $03, $77, $2F, $FF, $24, $85, $C0, $18, $00, $10, + $E8, $FB, $FE, $FF, $FF, $B8, $01, $00, $00, $00, $C2, $0C, $00, $80, $3D, $48, + $45, $00, $10, $00, $74, $12, $E8, $35, $FE, $FF, $FF, $B8, $01, $00, $00, $00, + $C2, $0C, $00, $E8, $B8, $FD, $FF, $FF, $B8, $01, $00, $00, $00, $C2, $0C, $00, + $B3, $18, $00, $10, $90, $18, $00, $10, $9D, $18, $00, $10, $9D, $18, $00, $10, + $56, $8B, $35, $88, $45, $00, $10, $33, $C0, $85, $F6, $74, $12, $8B, $15, $80, + $45, $00, $10, $3B, $0A, $74, $0B, $40, $83, $C2, $28, $3B, $C6, $72, $F4, $83, + $C8, $FF, $5E, $C3, $8B, $0D, $80, $45, $00, $10, $85, $C9, $75, $2B, $68, $00, + $05, $00, $00, $51, $FF, $35, $6C, $45, $00, $10, $C7, $05, $84, $45, $00, $10, + $20, $00, $00, $00, $FF, $15, $74, $30, $00, $10, $8B, $C8, $89, $0D, $80, $45, + $00, $10, $85, $C9, $75, $3D, $33, $C0, $C3, $8B, $15, $88, $45, $00, $10, $A1, + $84, $45, $00, $10, $3B, $D0, $72, $31, $6B, $C0, $50, $50, $51, $6A, $00, $FF, + $35, $6C, $45, $00, $10, $FF, $15, $70, $30, $00, $10, $8B, $C8, $85, $C9, $74, + $D5, $A1, $84, $45, $00, $10, $03, $C0, $89, $0D, $80, $45, $00, $10, $A3, $84, + $45, $00, $10, $8B, $15, $88, $45, $00, $10, $6B, $C2, $28, $03, $C1, $42, $89, + $15, $88, $45, $00, $10, $C3, $55, $8B, $EC, $81, $EC, $D8, $02, $00, $00, $A1, + $04, $40, $00, $10, $33, $C5, $89, $45, $FC, $8B, $C1, $C7, $85, $30, $FD, $FF, + $FF, $01, $00, $01, $00, $56, $8D, $8D, $30, $FD, $FF, $FF, $89, $85, $28, $FD, + $FF, $FF, $51, $50, $8B, $F2, $FF, $15, $7C, $30, $00, $10, $85, $C0, $0F, $84, + $C3, $00, $00, $00, $53, $83, $FE, $FF, $75, $0A, $8B, $1D, $88, $45, $00, $10, + $33, $F6, $EB, $03, $8D, $5E, $01, $3B, $F3, $0F, $83, $A7, $00, $00, $00, $6B, + $D6, $28, $2B, $DE, $57, $8B, $BD, $28, $FD, $FF, $FF, $89, $95, $2C, $FD, $FF, + $FF, $8B, $35, $80, $45, $00, $10, $8B, $45, $08, $03, $F2, $83, $E8, $00, $74, + $1A, $83, $E8, $01, $74, $10, $83, $E8, $01, $75, $12, $8B, $7E, $14, $C1, $E7, + $1D, $C1, $FF, $1F, $EB, $07, $33, $FF, $47, $EB, $02, $33, $FF, $8B, $56, $14, + $8B, $C2, $C1, $E0, $1E, $C1, $F8, $1F, $3B, $C7, $74, $41, $85, $FF, $74, $70, + $C1, $EA, $03, $33, $C9, $83, $E2, $0F, $76, $14, $0F, $B6, $44, $0E, $18, $03, + $06, $39, $85, $E8, $FD, $FF, $FF, $74, $4D, $41, $3B, $CA, $72, $EC, $33, $C9, + $85, $C9, $74, $19, $8D, $85, $30, $FD, $FF, $FF, $89, $8D, $E8, $FD, $FF, $FF, + $50, $FF, $B5, $28, $FD, $FF, $FF, $FF, $15, $88, $30, $00, $10, $8B, $95, $2C, + $FD, $FF, $FF, $83, $C2, $28, $89, $95, $2C, $FD, $FF, $FF, $83, $EB, $01, $0F, + $85, $6C, $FF, $FF, $FF, $5F, $5B, $8B, $4D, $FC, $33, $CD, $5E, $E8, $50, $0E, + $00, $00, $8B, $E5, $5D, $C3, $0F, $B6, $4C, $31, $20, $03, $4E, $08, $EB, $B0, + $F6, $C2, $01, $74, $0D, $8B, $0E, $8D, $41, $FB, $39, $85, $E8, $FD, $FF, $FF, + $74, $9E, $C1, $EA, $03, $33, $C9, $83, $E2, $0F, $76, $92, $0F, $B6, $44, $0E, + $20, $03, $46, $08, $39, $85, $E8, $FD, $FF, $FF, $74, $0A, $41, $3B, $CA, $72, + $EB, $E9, $78, $FF, $FF, $FF, $0F, $B6, $4C, $31, $18, $03, $0E, $E9, $6E, $FF, + $FF, $FF, $55, $8B, $EC, $83, $EC, $20, $A1, $04, $40, $00, $10, $33, $C5, $89, + $45, $FC, $56, $57, $6A, $00, $6A, $04, $8B, $F1, $FF, $15, $68, $30, $00, $10, + $8B, $F8, $83, $FF, $FF, $0F, $84, $AE, $00, $00, $00, $8D, $45, $E0, $C7, $45, + $E0, $1C, $00, $00, $00, $50, $57, $FF, $15, $58, $30, $00, $10, $E9, $88, $00, + $00, $00, $83, $7D, $E0, $10, $72, $70, $FF, $15, $80, $30, $00, $10, $39, $45, + $EC, $75, $65, $FF, $15, $5C, $30, $00, $10, $39, $45, $E8, $74, $5A, $83, $3E, + $00, $75, $22, $68, $00, $02, $00, $00, $6A, $00, $FF, $35, $6C, $45, $00, $10, + $C7, $46, $04, $80, $00, $00, $00, $FF, $15, $74, $30, $00, $10, $89, $06, $85, + $C0, $74, $4F, $EB, $25, $8B, $46, $04, $39, $46, $08, $72, $1D, $C1, $E0, $03, + $50, $FF, $36, $6A, $00, $FF, $35, $6C, $45, $00, $10, $FF, $15, $70, $30, $00, + $10, $85, $C0, $74, $2D, $D1, $66, $04, $89, $06, $8B, $56, $08, $8B, $0E, $8B, + $45, $E8, $89, $04, $91, $FF, $46, $08, $8D, $45, $E0, $C7, $45, $E0, $1C, $00, + $00, $00, $50, $57, $FF, $15, $54, $30, $00, $10, $85, $C0, $0F, $85, $70, $FF, + $FF, $FF, $57, $FF, $15, $14, $30, $00, $10, $8B, $4D, $FC, $5F, $33, $CD, $5E, + $E8, $1D, $0D, $00, $00, $8B, $E5, $5D, $C3, $55, $8B, $EC, $51, $53, $56, $8B, + $F1, $89, $55, $FC, $33, $DB, $89, $1E, $89, $5E, $04, $89, $5E, $08, $E8, $FF, + $FE, $FF, $FF, $39, $1E, $74, $42, $57, $8B, $FB, $39, $5E, $08, $76, $39, $8B, + $06, $FF, $34, $B8, $53, $6A, $5A, $FF, $15, $8C, $30, $00, $10, $8B, $D8, $85, + $DB, $74, $1C, $53, $FF, $15, $60, $30, $00, $10, $FF, $75, $08, $8B, $55, $FC, + $8B, $CB, $E8, $6F, $FD, $FF, $FF, $59, $53, $FF, $15, $14, $30, $00, $10, $47, + $6A, $00, $5B, $3B, $7E, $08, $72, $C7, $5F, $5E, $5B, $8B, $E5, $5D, $C3, $56, + $8B, $F1, $83, $3E, $00, $74, $44, $57, $33, $FF, $39, $7E, $08, $76, $2B, $53, + $8B, $06, $FF, $34, $B8, $6A, $00, $6A, $5A, $FF, $15, $8C, $30, $00, $10, $8B, + $D8, $85, $DB, $74, $0E, $53, $FF, $15, $64, $30, $00, $10, $53, $FF, $15, $14, + $30, $00, $10, $47, $3B, $7E, $08, $72, $D7, $5B, $FF, $36, $6A, $00, $FF, $35, + $6C, $45, $00, $10, $FF, $15, $48, $30, $00, $10, $5F, $5E, $C3, $55, $8B, $EC, + $83, $EC, $10, $53, $6B, $D9, $28, $56, $57, $6A, $05, $8B, $F2, $03, $1D, $80, + $45, $00, $10, $58, $89, $75, $F0, $89, $45, $FC, $F6, $43, $14, $01, $8B, $3B, + $89, $7D, $F8, $74, $0B, $2B, $F8, $6A, $07, $58, $89, $7D, $F8, $89, $45, $FC, + $8D, $4D, $F4, $51, $6A, $40, $50, $57, $FF, $15, $18, $30, $00, $10, $85, $C0, + $75, $05, $6A, $0A, $58, $EB, $7F, $85, $F6, $74, $1D, $C6, $07, $E9, $8B, $43, + $04, $2B, $C7, $83, $E8, $05, $89, $47, $01, $F6, $43, $14, $01, $74, $29, $8B, + $03, $66, $C7, $00, $EB, $F9, $EB, $20, $F6, $43, $14, $01, $74, $0F, $8D, $73, + $0C, $A5, $66, $A5, $A4, $8B, $7D, $F8, $8B, $75, $F0, $EB, $0B, $8B, $43, $0C, + $89, $07, $8A, $43, $10, $88, $47, $04, $8D, $45, $F4, $50, $FF, $75, $F4, $FF, + $75, $FC, $57, $FF, $15, $18, $30, $00, $10, $FF, $75, $FC, $57, $FF, $15, $4C, + $30, $00, $10, $50, $FF, $15, $84, $30, $00, $10, $83, $E6, $01, $8B, $CE, $83, + $E1, $FD, $8D, $04, $36, $0B, $C8, $8B, $43, $14, $03, $C9, $83, $E0, $F9, $0B, + $C8, $33, $C0, $89, $4B, $14, $5F, $5E, $5B, $8B, $E5, $5D, $C3, $55, $8B, $EC, + $83, $EC, $10, $53, $8B, $1D, $88, $45, $00, $10, $8B, $D1, $56, $57, $33, $FF, + $89, $55, $FC, $8B, $F7, $85, $DB, $0F, $84, $83, $00, $00, $00, $8B, $0D, $80, + $45, $00, $10, $83, $C1, $14, $8B, $01, $C1, $E0, $1E, $C1, $F8, $1F, $3B, $C2, + $75, $0A, $46, $83, $C1, $28, $3B, $F3, $72, $EC, $EB, $64, $83, $FE, $FF, $74, + $5F, $33, $C0, $8D, $4D, $F0, $85, $D2, $0F, $95, $C0, $83, $CA, $FF, $50, $E8, + $25, $FE, $FF, $FF, $8B, $15, $88, $45, $00, $10, $59, $3B, $F2, $73, $39, $8B, + $4D, $FC, $6B, $DE, $28, $A1, $80, $45, $00, $10, $8B, $44, $03, $14, $C1, $E0, + $1E, $C1, $F8, $1F, $3B, $C1, $74, $18, $8B, $D1, $8B, $CE, $E8, $AC, $FE, $FF, + $FF, $8B, $F8, $85, $FF, $75, $11, $8B, $15, $88, $45, $00, $10, $8B, $4D, $FC, + $46, $83, $C3, $28, $3B, $F2, $72, $CD, $8D, $4D, $F0, $E8, $3F, $FE, $FF, $FF, + $8B, $C7, $5F, $5E, $5B, $8B, $E5, $5D, $C3, $56, $33, $F6, $EB, $12, $83, $FE, + $20, $73, $04, $6A, $00, $EB, $02, $6A, $01, $FF, $15, $6C, $30, $00, $10, $46, + $6A, $00, $6A, $01, $68, $68, $45, $00, $10, $FF, $15, $50, $30, $00, $10, $85, + $C0, $75, $DB, $5E, $C3, $6A, $00, $68, $68, $45, $00, $10, $FF, $15, $40, $30, + $00, $10, $C3, $57, $E8, $C0, $FF, $FF, $FF, $83, $3D, $6C, $45, $00, $10, $00, + $74, $70, $33, $C9, $E8, $04, $FF, $FF, $FF, $8B, $F8, $85, $FF, $75, $66, $A1, + $74, $45, $00, $10, $53, $33, $DB, $89, $1D, $74, $45, $00, $10, $85, $C0, $74, + $17, $56, $8B, $30, $68, $00, $80, $00, $00, $53, $50, $FF, $15, $90, $30, $00, + $10, $8B, $C6, $85, $F6, $75, $EB, $5E, $FF, $35, $80, $45, $00, $10, $53, $FF, + $35, $6C, $45, $00, $10, $FF, $15, $48, $30, $00, $10, $FF, $35, $6C, $45, $00, + $10, $FF, $15, $78, $30, $00, $10, $89, $1D, $6C, $45, $00, $10, $89, $1D, $80, + $45, $00, $10, $89, $1D, $84, $45, $00, $10, $89, $1D, $88, $45, $00, $10, $5B, + $EB, $03, $6A, $02, $5F, $E8, $6B, $FF, $FF, $FF, $8B, $C7, $5F, $C3, $55, $8B, + $EC, $83, $EC, $30, $A1, $04, $40, $00, $10, $33, $C5, $89, $45, $FC, $8B, $45, + $08, $53, $56, $57, $8B, $FA, $89, $45, $D0, $89, $7D, $D4, $8B, $F1, $33, $DB, + $E8, $14, $FF, $FF, $FF, $39, $1D, $6C, $45, $00, $10, $0F, $84, $EB, $00, $00, + $00, $8B, $CE, $E8, $8A, $04, $00, $00, $85, $C0, $0F, $84, $D8, $00, $00, $00, + $8B, $CF, $E8, $7B, $04, $00, $00, $85, $C0, $0F, $84, $C9, $00, $00, $00, $8B, + $CE, $E8, $CA, $F9, $FF, $FF, $83, $F8, $FF, $0F, $85, $B5, $00, $00, $00, $E8, + $9D, $03, $00, $00, $8B, $F8, $85, $FF, $0F, $84, $A2, $00, $00, $00, $8B, $45, + $D4, $8D, $4D, $D8, $89, $75, $D8, $89, $45, $DC, $89, $7D, $E0, $E8, $E2, $00, + $00, $00, $85, $C0, $74, $7E, $E8, $B9, $F9, $FF, $FF, $8B, $D0, $85, $D2, $74, + $6F, $8B, $45, $D8, $8B, $4D, $E8, $8B, $7D, $E0, $83, $E1, $0F, $89, $02, $8B, + $45, $DC, $89, $42, $04, $8B, $45, $E4, $83, $E0, $01, $C1, $E1, $03, $0B, $C8, + $89, $7A, $08, $8B, $42, $14, $83, $E0, $80, $0B, $C8, $8B, $45, $EC, $89, $42, + $18, $8B, $45, $F0, $89, $42, $1C, $8B, $45, $F4, $89, $42, $20, $8B, $45, $F8, + $89, $4A, $14, $89, $42, $24, $39, $5D, $E4, $74, $0F, $83, $C6, $FB, $8D, $7A, + $0C, $A5, $66, $A5, $A4, $8B, $7D, $E0, $EB, $0B, $8B, $06, $89, $42, $0C, $8A, + $46, $04, $88, $42, $10, $8B, $45, $D0, $85, $C0, $74, $23, $89, $38, $EB, $1F, + $6A, $09, $EB, $02, $6A, $08, $5B, $8B, $CF, $E8, $67, $03, $00, $00, $EB, $0F, + $6A, $09, $EB, $0A, $6A, $03, $EB, $06, $6A, $07, $EB, $02, $6A, $02, $5B, $E8, + $41, $FE, $FF, $FF, $8B, $4D, $FC, $8B, $C3, $5F, $5E, $33, $CD, $5B, $E8, $EF, + $08, $00, $00, $8B, $E5, $5D, $C2, $04, $00, $56, $8B, $F1, $8A, $06, $84, $C0, + $74, $0C, $3C, $90, $74, $08, $3C, $CC, $74, $04, $33, $C0, $5E, $C3, $33, $C9, + $41, $3B, $D1, $76, $0A, $38, $04, $31, $75, $F0, $41, $3B, $CA, $72, $F6, $33, + $C0, $40, $5E, $C3, $55, $8B, $EC, $83, $EC, $58, $A1, $04, $40, $00, $10, $33, + $C5, $89, $45, $FC, $53, $33, $DB, $C6, $45, $AC, $E8, $56, $8B, $F1, $89, $5D, + $AD, $8A, $C3, $89, $75, $C4, $57, $C6, $45, $BC, $E9, $89, $5D, $BD, $66, $C7, + $45, $B4, $0F, $80, $89, $5D, $B6, $88, $45, $DF, $89, $5D, $D8, $89, $5D, $D4, + $89, $5E, $0C, $89, $5E, $10, $0F, $B6, $C8, $8D, $55, $E0, $8B, $46, $08, $0F, + $B6, $FB, $03, $C1, $03, $3E, $89, $4D, $A8, $8B, $CF, $89, $45, $C8, $E8, $2C, + $03, $00, $00, $F7, $45, $F8, $00, $10, $00, $00, $8B, $C8, $89, $4D, $D0, $0F, + $85, $19, $02, $00, $00, $89, $7D, $CC, $80, $FB, $05, $0F, $82, $84, $00, $00, + $00, $8B, $C7, $33, $D2, $2B, $45, $C8, $83, $E8, $05, $42, $6A, $05, $89, $45, + $BD, $8D, $45, $BC, $59, $89, $45, $CC, $89, $4D, $D0, $89, $55, $D4, $8B, $45, + $D8, $3B, $F8, $73, $0C, $0F, $B6, $45, $E0, $3B, $C8, $0F, $85, $DD, $01, $00, + $00, $8B, $45, $A8, $03, $C1, $83, $F8, $20, $0F, $87, $CF, $01, $00, $00, $8B, + $46, $10, $83, $F8, $08, $0F, $83, $C3, $01, $00, $00, $8A, $55, $DF, $88, $5C, + $30, $14, $8B, $46, $10, $02, $5D, $E0, $88, $54, $30, $1C, $8A, $C2, $8B, $7E, + $08, $FF, $46, $10, $03, $7D, $A8, $02, $45, $D0, $8B, $75, $CC, $8B, $55, $D4, + $88, $45, $DF, $F3, $A4, $85, $D2, $0F, $85, $2E, $01, $00, $00, $8B, $75, $C4, + $E9, $41, $FF, $FF, $FF, $8A, $55, $E6, $80, $FA, $E8, $75, $23, $0F, $B6, $45, + $E0, $2B, $45, $C8, $83, $C0, $FB, $03, $45, $F0, $03, $C7, $89, $45, $AD, $8D, + $45, $AC, $6A, $05, $59, $89, $45, $CC, $89, $4D, $D0, $E9, $6E, $FF, $FF, $FF, + $8A, $C2, $24, $FD, $3C, $E9, $75, $50, $0F, $B6, $4D, $E0, $03, $CF, $80, $FA, + $EB, $75, $08, $0F, $BE, $45, $F0, $03, $C8, $EB, $03, $03, $4D, $F0, $8B, $06, + $3B, $C1, $77, $1D, $83, $C0, $05, $3B, $C8, $73, $16, $8B, $45, $D8, $3B, $C1, + $0F, $83, $BD, $00, $00, $00, $89, $4D, $D8, $8B, $4D, $D0, $E9, $2D, $FF, $FF, + $FF, $2B, $4D, $C8, $8D, $45, $BC, $83, $E9, $05, $89, $45, $CC, $6A, $05, $89, + $4D, $BD, $59, $89, $4D, $D0, $EB, $29, $8A, $75, $E7, $8A, $E2, $80, $E4, $F0, + $80, $FC, $70, $74, $2C, $8A, $C2, $24, $FC, $3C, $E0, $74, $24, $8A, $C6, $24, + $F0, $3C, $80, $74, $1C, $80, $E2, $FE, $80, $FA, $C2, $0F, $85, $ED, $FE, $FF, + $FF, $8B, $45, $D8, $3B, $F8, $1B, $D2, $42, $89, $55, $D4, $E9, $E0, $FE, $FF, + $FF, $8A, $45, $E0, $0F, $B6, $C8, $03, $CF, $80, $FC, $70, $74, $0D, $8A, $C2, + $24, $FC, $3C, $E0, $74, $05, $03, $4D, $F0, $EB, $06, $0F, $BE, $45, $F0, $03, + $C8, $8B, $06, $3B, $C1, $77, $0B, $83, $C0, $05, $3B, $C8, $0F, $82, $69, $FF, + $FF, $FF, $8A, $C2, $24, $FC, $3C, $E0, $0F, $84, $90, $00, $00, $00, $0F, $B6, + $C2, $80, $FA, $0F, $75, $03, $0F, $B6, $C6, $2B, $4D, $C8, $24, $0F, $0C, $80, + $83, $E9, $06, $88, $45, $B5, $8D, $45, $B4, $89, $4D, $B6, $6A, $06, $E9, $01, + $FF, $FF, $FF, $8B, $4D, $D0, $E9, $76, $FE, $FF, $FF, $80, $FB, $05, $73, $59, + $8B, $7D, $C4, $0F, $B6, $F3, $6A, $05, $5A, $8B, $07, $2B, $D6, $03, $C6, $8B, + $C8, $89, $45, $C4, $E8, $90, $FD, $FF, $FF, $85, $C0, $75, $3C, $80, $FB, $02, + $73, $11, $8B, $4D, $C4, $6A, $02, $5A, $2B, $D6, $E8, $7A, $FD, $FF, $FF, $85, + $C0, $74, $2B, $8B, $0F, $83, $C1, $FB, $E8, $F5, $00, $00, $00, $85, $C0, $74, + $1D, $8B, $0F, $6A, $05, $83, $E9, $05, $5A, $E8, $5B, $FD, $FF, $FF, $85, $C0, + $74, $0C, $C7, $47, $0C, $01, $00, $00, $00, $33, $C0, $40, $EB, $02, $33, $C0, + $8B, $4D, $FC, $5F, $5E, $33, $CD, $5B, $E8, $25, $06, $00, $00, $8B, $E5, $5D, + $C3, $8B, $15, $74, $45, $00, $10, $56, $33, $F6, $EB, $07, $39, $72, $04, $75, + $4F, $8B, $12, $85, $D2, $75, $F5, $6A, $40, $68, $00, $30, $00, $00, $68, $00, + $10, $00, $00, $56, $FF, $15, $94, $30, $00, $10, $8B, $D0, $85, $D2, $74, $41, + $8D, $4A, $20, $89, $72, $04, $89, $72, $08, $8B, $F1, $2B, $F2, $8B, $42, $04, + $83, $C6, $20, $89, $01, $89, $4A, $04, $83, $C1, $20, $81, $FE, $E0, $0F, $00, + $00, $76, $EA, $A1, $74, $45, $00, $10, $89, $02, $89, $15, $74, $45, $00, $10, + $85, $D2, $74, $0D, $8B, $42, $04, $5E, $8B, $08, $FF, $42, $08, $89, $4A, $04, + $C3, $33, $C0, $5E, $C3, $8B, $15, $74, $45, $00, $10, $8B, $C1, $56, $33, $F6, + $25, $00, $F0, $FF, $FF, $EB, $08, $3B, $D0, $74, $0A, $8B, $F2, $8B, $12, $85, + $D2, $75, $F4, $5E, $C3, $8B, $42, $04, $89, $01, $83, $6A, $08, $01, $89, $4A, + $04, $75, $1D, $8B, $02, $85, $F6, $74, $04, $89, $06, $EB, $05, $A3, $74, $45, + $00, $10, $68, $00, $80, $00, $00, $6A, $00, $52, $FF, $15, $90, $30, $00, $10, + $5E, $C3, $55, $8B, $EC, $83, $EC, $1C, $6A, $1C, $8D, $45, $E4, $50, $51, $FF, + $15, $98, $30, $00, $10, $81, $7D, $F4, $00, $10, $00, $00, $75, $0B, $F6, $45, + $F8, $F0, $74, $05, $33, $C0, $40, $EB, $02, $33, $C0, $8B, $E5, $5D, $C3, $55, + $8B, $EC, $83, $EC, $24, $8B, $C1, $89, $55, $E8, $53, $57, $89, $45, $DC, $8B, + $D8, $33, $C0, $C7, $45, $EC, $10, $40, $00, $10, $6A, $1C, $89, $45, $F0, $8B, + $FA, $88, $45, $FF, $32, $C0, $59, $F3, $AA, $B5, $10, $8A, $0B, $43, $0F, $B6, + $C1, $88, $4D, $FE, $83, $F8, $66, $7F, $30, $74, $25, $83, $F8, $26, $74, $17, + $83, $F8, $2E, $74, $12, $83, $F8, $36, $74, $0D, $83, $F8, $3E, $74, $08, $83, + $C0, $9C, $83, $F8, $01, $77, $50, $80, $4D, $FF, $40, $88, $4A, $03, $EB, $42, + $80, $4D, $FF, $08, $88, $4A, $04, $EB, $39, $83, $E8, $67, $74, $2D, $2D, $89, + $00, $00, $00, $74, $1D, $48, $83, $E8, $01, $74, $0E, $83, $E8, $01, $75, $27, + $80, $4D, $FF, $04, $88, $4A, $01, $EB, $19, $80, $4D, $FF, $02, $88, $4A, $01, + $EB, $10, $80, $4D, $FF, $20, $88, $4A, $02, $EB, $07, $80, $4D, $FF, $10, $88, + $4A, $05, $80, $ED, $01, $75, $84, $8A, $6D, $FF, $0F, $B6, $C5, $C1, $E0, $17, + $89, $42, $18, $84, $ED, $75, $05, $FE, $C5, $88, $6D, $FF, $88, $4A, $06, $80, + $F9, $0F, $75, $12, $8A, $0B, $43, $88, $4D, $FE, $88, $4A, $07, $C7, $45, $EC, + $5A, $40, $00, $10, $EB, $18, $8A, $C1, $04, $60, $3C, $03, $77, $10, $F6, $C5, + $10, $74, $05, $80, $CD, $08, $EB, $03, $80, $E5, $F7, $88, $6D, $FF, $0F, $B6, + $F9, $56, $8B, $F7, $8B, $C7, $C1, $EE, $02, $25, $03, $00, $00, $80, $79, $05, + $48, $83, $C8, $FC, $40, $8B, $55, $EC, $89, $45, $E4, $8B, $45, $EC, $0F, $B6, + $04, $06, $03, $45, $E4, $8A, $04, $10, $8B, $55, $E8, $89, $45, $F4, $3C, $FF, + $75, $1F, $81, $4A, $18, $00, $30, $00, $00, $8B, $C7, $83, $E0, $FD, $C6, $45, + $F4, $00, $83, $F8, $24, $75, $07, $B0, $01, $89, $45, $F4, $EB, $03, $8B, $45, + $F4, $C6, $45, $E0, $00, $84, $C0, $79, $19, $8B, $55, $EC, $0F, $B6, $C0, $83, + $E0, $7F, $0F, $B7, $04, $10, $8B, $55, $E8, $89, $45, $F4, $C1, $E8, $08, $89, + $45, $E0, $8A, $42, $07, $84, $C0, $74, $1A, $0F, $B6, $86, $40, $41, $00, $10, + $8B, $75, $E4, $84, $AC, $30, $40, $41, $00, $10, $74, $07, $81, $4A, $18, $00, + $30, $00, $00, $8B, $45, $F4, $A8, $01, $0F, $84, $C2, $02, $00, $00, $83, $4A, + $18, $01, $8A, $03, $8A, $E0, $88, $42, $08, $C0, $EC, $06, $88, $65, $FB, $88, + $62, $09, $8A, $E0, $C0, $E8, $03, $80, $E4, $07, $24, $07, $88, $65, $FC, $88, + $62, $0B, $88, $45, $FD, $88, $42, $0A, $8B, $45, $E0, $84, $C0, $74, $16, $8A, + $4D, $FD, $0F, $B6, $C0, $D3, $E0, $8A, $4D, $FE, $84, $C0, $79, $07, $81, $4A, + $18, $00, $30, $00, $00, $8A, $62, $07, $84, $E4, $75, $43, $8A, $C1, $04, $27, + $3C, $06, $77, $3B, $80, $C1, $27, $80, $7D, $FB, $03, $75, $13, $0F, $B6, $45, + $FD, $0F, $B6, $C9, $8A, $84, $C8, $08, $41, $00, $10, $8A, $4D, $FC, $EB, $0C, + $0F, $B6, $C1, $8A, $4D, $FD, $8A, $80, $01, $41, $00, $10, $8A, $6D, $FF, $8A, + $62, $07, $D2, $E0, $84, $C0, $79, $07, $81, $4A, $18, $00, $30, $00, $00, $BE, + $DB, $41, $00, $10, $F6, $C5, $20, $74, $5E, $80, $7D, $FB, $03, $75, $09, $81, + $4A, $18, $00, $90, $00, $00, $EB, $4F, $8A, $45, $FE, $8A, $C8, $84, $E4, $74, + $0E, $BE, $C9, $41, $00, $10, $C7, $45, $E0, $DB, $41, $00, $10, $EB, $11, $8A, + $C8, $C7, $45, $E0, $C9, $41, $00, $10, $BE, $B1, $41, $00, $10, $80, $E1, $FE, + $38, $0E, $74, $0A, $83, $C6, $02, $3B, $75, $E0, $75, $F4, $EB, $0D, $0F, $B6, + $46, $01, $8A, $4D, $FD, $D3, $E0, $84, $C0, $79, $07, $81, $4A, $18, $00, $90, + $00, $00, $BE, $DB, $41, $00, $10, $8A, $4A, $07, $8B, $C7, $84, $C9, $74, $43, + $83, $E8, $20, $74, $22, $83, $E8, $01, $74, $0A, $83, $E8, $01, $74, $18, $83, + $E8, $01, $75, $3C, $8A, $45, $FD, $C6, $45, $FB, $03, $3C, $04, $0F, $84, $A6, + $00, $00, $00, $3C, $05, $EB, $11, $8A, $45, $FD, $C6, $45, $FB, $03, $3C, $04, + $0F, $87, $93, $00, $00, $00, $3C, $01, $0F, $85, $92, $00, $00, $00, $E9, $86, + $00, $00, $00, $2D, $8C, $00, $00, $00, $74, $79, $48, $83, $E8, $01, $74, $68, + $80, $7D, $FB, $03, $75, $39, $84, $C9, $74, $0C, $BE, $EA, $41, $00, $10, $BF, + $14, $42, $00, $10, $EB, $05, $BF, $EA, $41, $00, $10, $8A, $4D, $FE, $38, $0E, + $74, $09, $83, $C6, $03, $3B, $F7, $75, $F5, $EB, $58, $84, $6E, $01, $74, $53, + $0F, $B6, $46, $02, $8A, $4D, $FD, $D3, $E0, $84, $C0, $79, $3C, $EB, $41, $84, + $C9, $74, $3D, $83, $EF, $50, $74, $14, $83, $EF, $75, $74, $2C, $83, $EF, $11, + $74, $0F, $83, $EF, $01, $74, $05, $83, $EF, $20, $75, $24, $F6, $C5, $09, $EB, + $03, $F6, $C5, $06, $75, $13, $EB, $18, $8A, $45, $FD, $3C, $01, $74, $0A, $3C, + $05, $EB, $04, $80, $7D, $FD, $05, $76, $07, $81, $4A, $18, $00, $10, $01, $00, + $8A, $4D, $FE, $8A, $43, $01, $83, $C3, $02, $80, $7D, $FD, $01, $88, $45, $FA, + $77, $14, $80, $F9, $F6, $75, $06, $80, $4D, $F4, $02, $EB, $09, $80, $F9, $F7, + $75, $04, $80, $4D, $F4, $10, $8A, $4D, $FB, $0F, $B6, $C1, $83, $E8, $00, $74, + $65, $83, $E8, $01, $74, $57, $83, $E8, $01, $8A, $45, $FC, $75, $0D, $C6, $45, + $F0, $02, $F6, $C5, $10, $75, $04, $C6, $45, $F0, $04, $80, $F9, $03, $74, $5C, + $3C, $04, $75, $58, $F6, $C5, $10, $75, $53, $8A, $4D, $FA, $83, $4A, $18, $02, + $8A, $C1, $C0, $E8, $06, $43, $88, $42, $0D, $8A, $C1, $C0, $E8, $03, $24, $07, + $88, $4A, $0C, $88, $42, $0E, $0F, $B6, $C1, $83, $E0, $07, $88, $42, $0F, $3C, + $05, $75, $29, $F6, $45, $FB, $01, $75, $23, $FE, $C8, $EB, $22, $8A, $45, $FC, + $C6, $45, $F0, $01, $EB, $B5, $8A, $45, $FC, $F6, $C5, $10, $74, $0A, $3C, $06, + $75, $A9, $C6, $45, $F0, $02, $EB, $A3, $3C, $05, $EB, $99, $8B, $45, $F0, $0F, + $B6, $F0, $4B, $8B, $C6, $83, $E8, $01, $74, $26, $83, $E8, $01, $74, $14, $48, + $83, $E8, $01, $75, $24, $81, $4A, $18, $80, $00, $00, $00, $8B, $03, $89, $42, + $14, $EB, $16, $83, $4A, $18, $40, $66, $8B, $03, $66, $89, $42, $14, $EB, $09, + $83, $4A, $18, $20, $8A, $03, $88, $42, $14, $8B, $45, $F4, $03, $DE, $EB, $0C, + $F6, $C5, $20, $74, $07, $81, $4A, $18, $00, $90, $00, $00, $5E, $A8, $10, $74, + $44, $A8, $40, $74, $1F, $F6, $C5, $08, $0F, $84, $84, $00, $00, $00, $81, $4A, + $18, $08, $01, $00, $00, $66, $8B, $03, $83, $C3, $02, $66, $89, $42, $10, $E9, + $91, $00, $00, $00, $F6, $C5, $08, $74, $10, $83, $4A, $18, $08, $66, $8B, $03, + $83, $C3, $02, $66, $89, $42, $10, $EB, $0C, $83, $4A, $18, $10, $8B, $03, $83, + $C3, $04, $89, $42, $10, $8B, $4D, $F4, $F6, $C1, $04, $74, $31, $8B, $42, $18, + $A8, $10, $74, $05, $83, $C8, $08, $EB, $09, $A8, $08, $74, $11, $0D, $00, $08, + $00, $00, $89, $42, $18, $66, $8B, $03, $66, $89, $42, $14, $EB, $0D, $83, $C8, + $08, $89, $42, $18, $66, $8B, $03, $66, $89, $42, $10, $83, $C3, $02, $F6, $C1, + $02, $74, $0A, $83, $4A, $18, $04, $8A, $03, $43, $88, $42, $10, $F6, $C1, $40, + $74, $11, $81, $4A, $18, $10, $01, $00, $00, $8B, $03, $83, $C3, $04, $89, $42, + $10, $EB, $12, $F6, $C1, $20, $74, $0D, $81, $4A, $18, $04, $01, $00, $00, $8A, + $03, $43, $88, $42, $10, $2B, $5D, $DC, $5F, $88, $1A, $80, $FB, $0F, $5B, $76, + $0A, $81, $4A, $18, $00, $50, $00, $00, $C6, $02, $0F, $0F, $B6, $02, $8B, $E5, + $5D, $C3, $3B, $0D, $04, $40, $00, $10, $F2, $75, $02, $F2, $C3, $F2, $E9, $28, + $00, $00, $00, $55, $8B, $EC, $6A, $00, $FF, $15, $38, $30, $00, $10, $FF, $75, + $08, $FF, $15, $3C, $30, $00, $10, $68, $09, $04, $00, $C0, $FF, $15, $4C, $30, + $00, $10, $50, $FF, $15, $34, $30, $00, $10, $5D, $C3, $55, $8B, $EC, $81, $EC, + $24, $03, $00, $00, $6A, $17, $E8, $EB, $00, $00, $00, $85, $C0, $74, $05, $6A, + $02, $59, $CD, $29, $A3, $20, $43, $00, $10, $89, $0D, $1C, $43, $00, $10, $89, + $15, $18, $43, $00, $10, $89, $1D, $14, $43, $00, $10, $89, $35, $10, $43, $00, + $10, $89, $3D, $0C, $43, $00, $10, $66, $8C, $15, $38, $43, $00, $10, $66, $8C, + $0D, $2C, $43, $00, $10, $66, $8C, $1D, $08, $43, $00, $10, $66, $8C, $05, $04, + $43, $00, $10, $66, $8C, $25, $00, $43, $00, $10, $66, $8C, $2D, $FC, $42, $00, + $10, $9C, $8F, $05, $30, $43, $00, $10, $8B, $45, $00, $A3, $24, $43, $00, $10, + $8B, $45, $04, $A3, $28, $43, $00, $10, $8D, $45, $08, $A3, $34, $43, $00, $10, + $8B, $85, $DC, $FC, $FF, $FF, $C7, $05, $70, $42, $00, $10, $01, $00, $01, $00, + $A1, $28, $43, $00, $10, $A3, $2C, $42, $00, $10, $C7, $05, $20, $42, $00, $10, + $09, $04, $00, $C0, $C7, $05, $24, $42, $00, $10, $01, $00, $00, $00, $C7, $05, + $30, $42, $00, $10, $01, $00, $00, $00, $6A, $04, $58, $6B, $C0, $00, $C7, $80, + $34, $42, $00, $10, $02, $00, $00, $00, $6A, $04, $58, $6B, $C0, $00, $8B, $0D, + $04, $40, $00, $10, $89, $4C, $05, $F8, $6A, $04, $58, $C1, $E0, $00, $8B, $0D, + $00, $40, $00, $10, $89, $4C, $05, $F8, $68, $C0, $30, $00, $10, $E8, $E1, $FE, + $FF, $FF, $8B, $E5, $5D, $C3, $FF, $25, $9C, $30, $00, $10, $C3, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $14, $39, $00, $00, $22, $39, $00, $00, $30, $39, $00, $00, $46, $39, $00, $00, + $56, $39, $00, $00, $68, $39, $00, $00, $76, $39, $00, $00, $88, $39, $00, $00, + $94, $39, $00, $00, $A4, $39, $00, $00, $B8, $39, $00, $00, $CA, $39, $00, $00, + $DA, $39, $00, $00, $02, $3C, $00, $00, $E4, $3B, $00, $00, $C8, $3B, $00, $00, + $32, $3A, $00, $00, $48, $3A, $00, $00, $56, $3A, $00, $00, $62, $3A, $00, $00, + $76, $3A, $00, $00, $94, $3A, $00, $00, $A4, $3A, $00, $00, $B4, $3A, $00, $00, + $CA, $3A, $00, $00, $DA, $3A, $00, $00, $EA, $3A, $00, $00, $06, $3B, $00, $00, + $0E, $3B, $00, $00, $1C, $3B, $00, $00, $28, $3B, $00, $00, $36, $3B, $00, $00, + $4A, $3B, $00, $00, $60, $3B, $00, $00, $78, $3B, $00, $00, $8C, $3B, $00, $00, + $9A, $3B, $00, $00, $A8, $3B, $00, $00, $B8, $3B, $00, $00, $16, $3C, $00, $00, + $00, $00, $00, $00, $FE, $39, $00, $00, $12, $3A, $00, $00, $00, $00, $00, $00, + $0C, $2A, $00, $10, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $20, $42, $00, $10, $70, $42, $00, $10, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $96, $30, $07, $77, $2C, $61, $0E, $EE, $BA, $51, $09, $99, + $19, $C4, $6D, $07, $8F, $F4, $6A, $70, $35, $A5, $63, $E9, $A3, $95, $64, $9E, + $32, $88, $DB, $0E, $A4, $B8, $DC, $79, $1E, $E9, $D5, $E0, $88, $D9, $D2, $97, + $2B, $4C, $B6, $09, $BD, $7C, $B1, $7E, $07, $2D, $B8, $E7, $91, $1D, $BF, $90, + $64, $10, $B7, $1D, $F2, $20, $B0, $6A, $48, $71, $B9, $F3, $DE, $41, $BE, $84, + $7D, $D4, $DA, $1A, $EB, $E4, $DD, $6D, $51, $B5, $D4, $F4, $C7, $85, $D3, $83, + $56, $98, $6C, $13, $C0, $A8, $6B, $64, $7A, $F9, $62, $FD, $EC, $C9, $65, $8A, + $4F, $5C, $01, $14, $D9, $6C, $06, $63, $63, $3D, $0F, $FA, $F5, $0D, $08, $8D, + $C8, $20, $6E, $3B, $5E, $10, $69, $4C, $E4, $41, $60, $D5, $72, $71, $67, $A2, + $D1, $E4, $03, $3C, $47, $D4, $04, $4B, $FD, $85, $0D, $D2, $6B, $B5, $0A, $A5, + $FA, $A8, $B5, $35, $6C, $98, $B2, $42, $D6, $C9, $BB, $DB, $40, $F9, $BC, $AC, + $E3, $6C, $D8, $32, $75, $5C, $DF, $45, $CF, $0D, $D6, $DC, $59, $3D, $D1, $AB, + $AC, $30, $D9, $26, $3A, $00, $DE, $51, $80, $51, $D7, $C8, $16, $61, $D0, $BF, + $B5, $F4, $B4, $21, $23, $C4, $B3, $56, $99, $95, $BA, $CF, $0F, $A5, $BD, $B8, + $9E, $B8, $02, $28, $08, $88, $05, $5F, $B2, $D9, $0C, $C6, $24, $E9, $0B, $B1, + $87, $7C, $6F, $2F, $11, $4C, $68, $58, $AB, $1D, $61, $C1, $3D, $2D, $66, $B6, + $90, $41, $DC, $76, $06, $71, $DB, $01, $BC, $20, $D2, $98, $2A, $10, $D5, $EF, + $89, $85, $B1, $71, $1F, $B5, $B6, $06, $A5, $E4, $BF, $9F, $33, $D4, $B8, $E8, + $A2, $C9, $07, $78, $34, $F9, $00, $0F, $8E, $A8, $09, $96, $18, $98, $0E, $E1, + $BB, $0D, $6A, $7F, $2D, $3D, $6D, $08, $97, $6C, $64, $91, $01, $5C, $63, $E6, + $F4, $51, $6B, $6B, $62, $61, $6C, $1C, $D8, $30, $65, $85, $4E, $00, $62, $F2, + $ED, $95, $06, $6C, $7B, $A5, $01, $1B, $C1, $F4, $08, $82, $57, $C4, $0F, $F5, + $C6, $D9, $B0, $65, $50, $E9, $B7, $12, $EA, $B8, $BE, $8B, $7C, $88, $B9, $FC, + $DF, $1D, $DD, $62, $49, $2D, $DA, $15, $F3, $7C, $D3, $8C, $65, $4C, $D4, $FB, + $58, $61, $B2, $4D, $CE, $51, $B5, $3A, $74, $00, $BC, $A3, $E2, $30, $BB, $D4, + $41, $A5, $DF, $4A, $D7, $95, $D8, $3D, $6D, $C4, $D1, $A4, $FB, $F4, $D6, $D3, + $6A, $E9, $69, $43, $FC, $D9, $6E, $34, $46, $88, $67, $AD, $D0, $B8, $60, $DA, + $73, $2D, $04, $44, $E5, $1D, $03, $33, $5F, $4C, $0A, $AA, $C9, $7C, $0D, $DD, + $3C, $71, $05, $50, $AA, $41, $02, $27, $10, $10, $0B, $BE, $86, $20, $0C, $C9, + $25, $B5, $68, $57, $B3, $85, $6F, $20, $09, $D4, $66, $B9, $9F, $E4, $61, $CE, + $0E, $F9, $DE, $5E, $98, $C9, $D9, $29, $22, $98, $D0, $B0, $B4, $A8, $D7, $C7, + $17, $3D, $B3, $59, $81, $0D, $B4, $2E, $3B, $5C, $BD, $B7, $AD, $6C, $BA, $C0, + $20, $83, $B8, $ED, $B6, $B3, $BF, $9A, $0C, $E2, $B6, $03, $9A, $D2, $B1, $74, + $39, $47, $D5, $EA, $AF, $77, $D2, $9D, $15, $26, $DB, $04, $83, $16, $DC, $73, + $12, $0B, $63, $E3, $84, $3B, $64, $94, $3E, $6A, $6D, $0D, $A8, $5A, $6A, $7A, + $0B, $CF, $0E, $E4, $9D, $FF, $09, $93, $27, $AE, $00, $0A, $B1, $9E, $07, $7D, + $44, $93, $0F, $F0, $D2, $A3, $08, $87, $68, $F2, $01, $1E, $FE, $C2, $06, $69, + $5D, $57, $62, $F7, $CB, $67, $65, $80, $71, $36, $6C, $19, $E7, $06, $6B, $6E, + $76, $1B, $D4, $FE, $E0, $2B, $D3, $89, $5A, $7A, $DA, $10, $CC, $4A, $DD, $67, + $6F, $DF, $B9, $F9, $F9, $EF, $BE, $8E, $43, $BE, $B7, $17, $D5, $8E, $B0, $60, + $E8, $A3, $D6, $D6, $7E, $93, $D1, $A1, $C4, $C2, $D8, $38, $52, $F2, $DF, $4F, + $F1, $67, $BB, $D1, $67, $57, $BC, $A6, $DD, $06, $B5, $3F, $4B, $36, $B2, $48, + $DA, $2B, $0D, $D8, $4C, $1B, $0A, $AF, $F6, $4A, $03, $36, $60, $7A, $04, $41, + $C3, $EF, $60, $DF, $55, $DF, $67, $A8, $EF, $8E, $6E, $31, $79, $BE, $69, $46, + $8C, $B3, $61, $CB, $1A, $83, $66, $BC, $A0, $D2, $6F, $25, $36, $E2, $68, $52, + $95, $77, $0C, $CC, $03, $47, $0B, $BB, $B9, $16, $02, $22, $2F, $26, $05, $55, + $BE, $3B, $BA, $C5, $28, $0B, $BD, $B2, $92, $5A, $B4, $2B, $04, $6A, $B3, $5C, + $A7, $FF, $D7, $C2, $31, $CF, $D0, $B5, $8B, $9E, $D9, $2C, $1D, $AE, $DE, $5B, + $B0, $C2, $64, $9B, $26, $F2, $63, $EC, $9C, $A3, $6A, $75, $0A, $93, $6D, $02, + $A9, $06, $09, $9C, $3F, $36, $0E, $EB, $85, $67, $07, $72, $13, $57, $00, $05, + $82, $4A, $BF, $95, $14, $7A, $B8, $E2, $AE, $2B, $B1, $7B, $38, $1B, $B6, $0C, + $9B, $8E, $D2, $92, $0D, $BE, $D5, $E5, $B7, $EF, $DC, $7C, $21, $DF, $DB, $0B, + $D4, $D2, $D3, $86, $42, $E2, $D4, $F1, $F8, $B3, $DD, $68, $6E, $83, $DA, $1F, + $CD, $16, $BE, $81, $5B, $26, $B9, $F6, $E1, $77, $B0, $6F, $77, $47, $B7, $18, + $E6, $5A, $08, $88, $70, $6A, $0F, $FF, $CA, $3B, $06, $66, $5C, $0B, $01, $11, + $FF, $9E, $65, $8F, $69, $AE, $62, $F8, $D3, $FF, $6B, $61, $45, $CF, $6C, $16, + $78, $E2, $0A, $A0, $EE, $D2, $0D, $D7, $54, $83, $04, $4E, $C2, $B3, $03, $39, + $61, $26, $67, $A7, $F7, $16, $60, $D0, $4D, $47, $69, $49, $DB, $77, $6E, $3E, + $4A, $6A, $D1, $AE, $DC, $5A, $D6, $D9, $66, $0B, $DF, $40, $F0, $3B, $D8, $37, + $53, $AE, $BC, $A9, $C5, $9E, $BB, $DE, $7F, $CF, $B2, $47, $E9, $FF, $B5, $30, + $1C, $F2, $BD, $BD, $8A, $C2, $BA, $CA, $30, $93, $B3, $53, $A6, $A3, $B4, $24, + $05, $36, $D0, $BA, $93, $06, $D7, $CD, $29, $57, $DE, $54, $BF, $67, $D9, $23, + $2E, $7A, $66, $B3, $B8, $4A, $61, $C4, $02, $1B, $68, $5D, $94, $2B, $6F, $2A, + $37, $BE, $0B, $B4, $A1, $8E, $0C, $C3, $1B, $DF, $05, $5A, $8D, $EF, $02, $2D, + $73, $00, $61, $00, $6E, $00, $63, $00, $74, $00, $75, $00, $61, $00, $72, $00, + $79, $00, $6C, $00, $69, $00, $62, $00, $2E, $00, $64, $00, $6C, $00, $6C, $00, + $00, $00, $00, $00, $41, $64, $64, $43, $6C, $69, $70, $62, $6F, $61, $72, $64, + $46, $6F, $72, $6D, $61, $74, $4C, $69, $73, $74, $65, $6E, $65, $72, $00, $00, + $52, $65, $6D, $6F, $76, $65, $43, $6C, $69, $70, $62, $6F, $61, $72, $64, $46, + $6F, $72, $6D, $61, $74, $4C, $69, $73, $74, $65, $6E, $65, $72, $00, $00, $00, + $6B, $00, $65, $00, $72, $00, $6E, $00, $65, $00, $6C, $00, $33, $00, $32, $00, + $2E, $00, $64, $00, $6C, $00, $6C, $00, $00, $00, $00, $00, $75, $00, $73, $00, + $65, $00, $72, $00, $33, $00, $32, $00, $2E, $00, $64, $00, $6C, $00, $6C, $00, + $00, $00, $00, $00, $47, $65, $74, $50, $72, $6F, $63, $41, $64, $64, $72, $65, + $73, $73, $00, $00, $4C, $64, $72, $47, $65, $74, $50, $72, $6F, $63, $65, $64, + $75, $72, $65, $41, $64, $64, $72, $65, $73, $73, $00, $00, $6E, $00, $74, $00, + $64, $00, $6C, $00, $6C, $00, $2E, $00, $64, $00, $6C, $00, $6C, $00, $00, $00, + $4C, $64, $72, $4C, $6F, $61, $64, $44, $6C, $6C, $00, $00, $77, $00, $69, $00, + $6E, $00, $74, $00, $72, $00, $75, $00, $73, $00, $74, $00, $2E, $00, $64, $00, + $6C, $00, $6C, $00, $00, $00, $00, $00, $57, $69, $6E, $56, $65, $72, $69, $66, + $79, $54, $72, $75, $73, $74, $00, $00, $57, $69, $6E, $56, $65, $72, $69, $66, + $79, $54, $72, $75, $73, $74, $45, $78, $00, $00, $00, $00, $62, $00, $64, $00, + $73, $00, $2E, $00, $65, $00, $78, $00, $65, $00, $00, $00, $4C, $00, $69, $00, + $63, $00, $65, $00, $6E, $00, $73, $00, $65, $00, $4D, $00, $61, $00, $6E, $00, + $61, $00, $67, $00, $65, $00, $72, $00, $2E, $00, $65, $00, $78, $00, $65, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $E1, $70, $F1, $55, $00, $00, $00, $00, $0D, $00, $00, $00, + $0C, $01, $00, $00, $1C, $37, $00, $00, $1C, $27, $00, $00, $00, $00, $00, $00, + $5C, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $04, $40, $00, $10, + $00, $00, $00, $00, $00, $00, $00, $00, $B0, $30, $00, $10, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $E1, $70, $F1, $55, $00, $00, $00, $00, $EC, $36, $00, $00, + $01, $00, $00, $00, $02, $00, $00, $00, $02, $00, $00, $00, $D8, $36, $00, $00, + $E0, $36, $00, $00, $E8, $36, $00, $00, $B0, $10, $00, $00, $D0, $10, $00, $00, + $F9, $36, $00, $00, $0A, $37, $00, $00, $00, $00, $01, $00, $73, $68, $66, $6F, + $6C, $64, $65, $72, $2E, $64, $6C, $6C, $00, $53, $48, $47, $65, $74, $46, $6F, + $6C, $64, $65, $72, $50, $61, $74, $68, $41, $00, $53, $48, $47, $65, $74, $46, + $6F, $6C, $64, $65, $72, $50, $61, $74, $68, $57, $00, $00, $47, $43, $54, $4C, + $00, $10, $00, $00, $0D, $1A, $00, $00, $2E, $74, $65, $78, $74, $24, $6D, $6E, + $00, $00, $00, $00, $00, $30, $00, $00, $B0, $00, $00, $00, $2E, $69, $64, $61, + $74, $61, $24, $35, $00, $00, $00, $00, $B0, $30, $00, $00, $04, $00, $00, $00, + $2E, $30, $30, $63, $66, $67, $00, $00, $C0, $30, $00, $00, $EC, $05, $00, $00, + $2E, $72, $64, $61, $74, $61, $00, $00, $B0, $36, $00, $00, $6B, $00, $00, $00, + $2E, $65, $64, $61, $74, $61, $00, $00, $1C, $37, $00, $00, $0C, $01, $00, $00, + $2E, $72, $64, $61, $74, $61, $24, $7A, $7A, $7A, $64, $62, $67, $00, $00, $00, + $28, $38, $00, $00, $28, $00, $00, $00, $2E, $69, $64, $61, $74, $61, $24, $32, + $00, $00, $00, $00, $50, $38, $00, $00, $14, $00, $00, $00, $2E, $69, $64, $61, + $74, $61, $24, $33, $00, $00, $00, $00, $64, $38, $00, $00, $B0, $00, $00, $00, + $2E, $69, $64, $61, $74, $61, $24, $34, $00, $00, $00, $00, $14, $39, $00, $00, + $1E, $03, $00, $00, $2E, $69, $64, $61, $74, $61, $24, $36, $00, $00, $00, $00, + $00, $40, $00, $00, $14, $02, $00, $00, $2E, $64, $61, $74, $61, $00, $00, $00, + $20, $42, $00, $00, $6C, $03, $00, $00, $2E, $62, $73, $73, $00, $00, $00, $00, + $00, $50, $00, $00, $58, $00, $00, $00, $2E, $72, $73, $72, $63, $24, $30, $31, + $00, $00, $00, $00, $60, $50, $00, $00, $80, $01, $00, $00, $2E, $72, $73, $72, + $63, $24, $30, $32, $00, $00, $00, $00, $64, $38, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $F0, $39, $00, $00, $00, $30, $00, $00, $08, $39, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $26, $3A, $00, $00, $A4, $30, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $14, $39, $00, $00, $22, $39, $00, $00, $30, $39, $00, $00, + $46, $39, $00, $00, $56, $39, $00, $00, $68, $39, $00, $00, $76, $39, $00, $00, + $88, $39, $00, $00, $94, $39, $00, $00, $A4, $39, $00, $00, $B8, $39, $00, $00, + $CA, $39, $00, $00, $DA, $39, $00, $00, $02, $3C, $00, $00, $E4, $3B, $00, $00, + $C8, $3B, $00, $00, $32, $3A, $00, $00, $48, $3A, $00, $00, $56, $3A, $00, $00, + $62, $3A, $00, $00, $76, $3A, $00, $00, $94, $3A, $00, $00, $A4, $3A, $00, $00, + $B4, $3A, $00, $00, $CA, $3A, $00, $00, $DA, $3A, $00, $00, $EA, $3A, $00, $00, + $06, $3B, $00, $00, $0E, $3B, $00, $00, $1C, $3B, $00, $00, $28, $3B, $00, $00, + $36, $3B, $00, $00, $4A, $3B, $00, $00, $60, $3B, $00, $00, $78, $3B, $00, $00, + $8C, $3B, $00, $00, $9A, $3B, $00, $00, $A8, $3B, $00, $00, $B8, $3B, $00, $00, + $16, $3C, $00, $00, $00, $00, $00, $00, $FE, $39, $00, $00, $12, $3A, $00, $00, + $00, $00, $00, $00, $8F, $00, $43, $72, $65, $61, $74, $65, $46, $69, $6C, $65, + $57, $00, $F0, $01, $47, $65, $74, $46, $69, $6C, $65, $53, $69, $7A, $65, $00, + $8C, $00, $43, $72, $65, $61, $74, $65, $46, $69, $6C, $65, $4D, $61, $70, $70, + $69, $6E, $67, $57, $00, $00, $57, $03, $4D, $61, $70, $56, $69, $65, $77, $4F, + $66, $46, $69, $6C, $65, $00, $D6, $04, $55, $6E, $6D, $61, $70, $56, $69, $65, + $77, $4F, $66, $46, $69, $6C, $65, $00, $52, $00, $43, $6C, $6F, $73, $65, $48, + $61, $6E, $64, $6C, $65, $00, $EF, $04, $56, $69, $72, $74, $75, $61, $6C, $50, + $72, $6F, $74, $65, $63, $74, $00, $00, $45, $05, $6C, $73, $74, $72, $63, $6D, + $70, $69, $57, $00, $A4, $02, $47, $65, $74, $56, $65, $72, $73, $69, $6F, $6E, + $45, $78, $57, $00, $18, $02, $47, $65, $74, $4D, $6F, $64, $75, $6C, $65, $48, + $61, $6E, $64, $6C, $65, $57, $00, $00, $45, $02, $47, $65, $74, $50, $72, $6F, + $63, $41, $64, $64, $72, $65, $73, $73, $00, $00, $3F, $03, $4C, $6F, $61, $64, + $4C, $69, $62, $72, $61, $72, $79, $57, $00, $00, $14, $02, $47, $65, $74, $4D, + $6F, $64, $75, $6C, $65, $46, $69, $6C, $65, $4E, $61, $6D, $65, $57, $00, $00, + $4B, $45, $52, $4E, $45, $4C, $33, $32, $2E, $64, $6C, $6C, $00, $00, $BF, $00, + $53, $48, $47, $65, $74, $46, $6F, $6C, $64, $65, $72, $50, $61, $74, $68, $41, + $00, $00, $C3, $00, $53, $48, $47, $65, $74, $46, $6F, $6C, $64, $65, $72, $50, + $61, $74, $68, $57, $00, $00, $53, $48, $45, $4C, $4C, $33, $32, $2E, $64, $6C, + $6C, $00, $EC, $02, $49, $6E, $74, $65, $72, $6C, $6F, $63, $6B, $65, $64, $45, + $78, $63, $68, $61, $6E, $67, $65, $00, $CD, $02, $48, $65, $61, $70, $43, $72, + $65, $61, $74, $65, $00, $00, $CF, $02, $48, $65, $61, $70, $46, $72, $65, $65, + $00, $00, $C0, $01, $47, $65, $74, $43, $75, $72, $72, $65, $6E, $74, $50, $72, + $6F, $63, $65, $73, $73, $00, $E9, $02, $49, $6E, $74, $65, $72, $6C, $6F, $63, + $6B, $65, $64, $43, $6F, $6D, $70, $61, $72, $65, $45, $78, $63, $68, $61, $6E, + $67, $65, $00, $00, $C4, $04, $54, $68, $72, $65, $61, $64, $33, $32, $4E, $65, + $78, $74, $00, $00, $C3, $04, $54, $68, $72, $65, $61, $64, $33, $32, $46, $69, + $72, $73, $74, $00, $C5, $01, $47, $65, $74, $43, $75, $72, $72, $65, $6E, $74, + $54, $68, $72, $65, $61, $64, $49, $64, $00, $00, $BA, $04, $53, $75, $73, $70, + $65, $6E, $64, $54, $68, $72, $65, $61, $64, $00, $13, $04, $52, $65, $73, $75, + $6D, $65, $54, $68, $72, $65, $61, $64, $00, $00, $BE, $00, $43, $72, $65, $61, + $74, $65, $54, $6F, $6F, $6C, $68, $65, $6C, $70, $33, $32, $53, $6E, $61, $70, + $73, $68, $6F, $74, $00, $00, $B2, $04, $53, $6C, $65, $65, $70, $00, $D2, $02, + $48, $65, $61, $70, $52, $65, $41, $6C, $6C, $6F, $63, $00, $CB, $02, $48, $65, + $61, $70, $41, $6C, $6C, $6F, $63, $00, $CE, $02, $48, $65, $61, $70, $44, $65, + $73, $74, $72, $6F, $79, $00, $86, $02, $47, $65, $74, $54, $68, $72, $65, $61, + $64, $43, $6F, $6E, $74, $65, $78, $74, $00, $00, $C1, $01, $47, $65, $74, $43, + $75, $72, $72, $65, $6E, $74, $50, $72, $6F, $63, $65, $73, $73, $49, $64, $00, + $58, $01, $46, $6C, $75, $73, $68, $49, $6E, $73, $74, $72, $75, $63, $74, $69, + $6F, $6E, $43, $61, $63, $68, $65, $00, $91, $04, $53, $65, $74, $54, $68, $72, + $65, $61, $64, $43, $6F, $6E, $74, $65, $78, $74, $00, $00, $85, $03, $4F, $70, + $65, $6E, $54, $68, $72, $65, $61, $64, $00, $00, $EC, $04, $56, $69, $72, $74, + $75, $61, $6C, $46, $72, $65, $65, $00, $E9, $04, $56, $69, $72, $74, $75, $61, + $6C, $41, $6C, $6C, $6F, $63, $00, $00, $F1, $04, $56, $69, $72, $74, $75, $61, + $6C, $51, $75, $65, $72, $79, $00, $00, $D3, $04, $55, $6E, $68, $61, $6E, $64, + $6C, $65, $64, $45, $78, $63, $65, $70, $74, $69, $6F, $6E, $46, $69, $6C, $74, + $65, $72, $00, $00, $A5, $04, $53, $65, $74, $55, $6E, $68, $61, $6E, $64, $6C, + $65, $64, $45, $78, $63, $65, $70, $74, $69, $6F, $6E, $46, $69, $6C, $74, $65, + $72, $00, $C0, $04, $54, $65, $72, $6D, $69, $6E, $61, $74, $65, $50, $72, $6F, + $63, $65, $73, $73, $00, $00, $04, $03, $49, $73, $50, $72, $6F, $63, $65, $73, + $73, $6F, $72, $46, $65, $61, $74, $75, $72, $65, $50, $72, $65, $73, $65, $6E, + $74, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $B1, $19, $BF, $44, $4E, $E6, $40, $BB, $00, $00, $00, $00, $00, $00, $00, $00, + $A3, $A8, $A3, $A8, $A3, $A8, $A3, $A8, $A3, $A8, $A3, $A8, $A3, $A8, $A3, $A8, + $AA, $AA, $AA, $AA, $AA, $AA, $AA, $AA, $AC, $AA, $B2, $AA, $9F, $9F, $9F, $9F, + $B5, $A3, $A3, $A4, $AA, $AA, $BA, $AA, $96, $AA, $A8, $AA, $C3, $C3, $96, $96, + $B7, $AE, $D6, $BD, $A3, $C5, $A3, $A3, $9F, $C3, $9C, $AA, $AA, $AC, $AA, $BF, + $03, $7F, $11, $7F, $01, $7F, $01, $3F, $01, $01, $90, $82, $7D, $97, $59, $59, + $59, $59, $59, $7F, $59, $59, $60, $7D, $7F, $7F, $59, $59, $59, $59, $59, $59, + $59, $59, $59, $59, $59, $59, $9A, $88, $7D, $59, $50, $50, $50, $50, $59, $59, + $59, $59, $61, $94, $61, $9E, $59, $59, $85, $59, $92, $A3, $60, $60, $59, $59, + $59, $59, $59, $59, $59, $59, $59, $59, $59, $9F, $01, $03, $01, $04, $03, $D5, + $03, $CC, $01, $BC, $03, $F0, $10, $10, $10, $10, $50, $50, $50, $50, $14, $20, + $20, $20, $20, $01, $01, $01, $01, $C4, $02, $10, $00, $00, $00, $00, $01, $01, + $C0, $C2, $10, $11, $02, $03, $11, $03, $03, $04, $00, $00, $14, $00, $02, $00, + $00, $C6, $C8, $02, $02, $02, $02, $00, $00, $FF, $FF, $FF, $FF, $00, $00, $00, + $FF, $CA, $01, $01, $01, $00, $06, $00, $04, $00, $C0, $C2, $01, $01, $03, $01, + $FF, $FF, $01, $00, $03, $C4, $C4, $C6, $03, $01, $01, $01, $FF, $03, $03, $03, + $C8, $40, $00, $0A, $00, $04, $00, $00, $00, $00, $7F, $00, $33, $01, $00, $00, + $00, $00, $00, $00, $FF, $BF, $FF, $FF, $00, $00, $00, $00, $07, $00, $00, $FF, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $FF, + $00, $00, $00, $BF, $00, $00, $00, $00, $00, $00, $00, $00, $7F, $00, $00, $FF, + $4A, $4A, $4A, $4A, $4B, $52, $4A, $4A, $4A, $4A, $4F, $4C, $4A, $4A, $4A, $4A, + $4A, $4A, $4A, $4A, $55, $45, $40, $4A, $4A, $4A, $45, $59, $4D, $46, $4A, $5D, + $4A, $4A, $4A, $4A, $4A, $4A, $4A, $4A, $4A, $4A, $4A, $4A, $4A, $4A, $61, $63, + $67, $4E, $4A, $4A, $6B, $6D, $4A, $4A, $45, $6D, $4A, $4A, $44, $45, $4A, $4A, + $00, $00, $00, $02, $0D, $06, $06, $06, $06, $0E, $00, $00, $00, $00, $06, $06, + $06, $00, $06, $06, $02, $06, $00, $0A, $0A, $07, $07, $06, $02, $05, $05, $02, + $02, $00, $00, $04, $04, $04, $04, $00, $00, $00, $0E, $05, $06, $06, $06, $01, + $06, $00, $00, $08, $00, $10, $00, $18, $00, $20, $00, $28, $00, $30, $00, $80, + $01, $82, $01, $86, $00, $F6, $CF, $FE, $3F, $AB, $00, $B0, $00, $B1, $00, $B3, + $00, $BA, $F8, $BB, $00, $C0, $00, $C1, $00, $C7, $BF, $62, $FF, $00, $8D, $FF, + $00, $C4, $FF, $00, $C5, $FF, $00, $FF, $FF, $EB, $01, $FF, $0E, $12, $08, $00, + $13, $09, $00, $16, $08, $00, $17, $09, $00, $2B, $09, $00, $AE, $FF, $07, $B2, + $FF, $00, $B4, $FF, $00, $B5, $FF, $00, $C3, $01, $00, $C7, $FF, $BF, $E7, $08, + $00, $F0, $02, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, + $18, $00, $00, $00, $18, $00, $00, $80, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $01, $00, $02, $00, $00, $00, $30, $00, $00, $80, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, + $09, $04, $00, $00, $48, $00, $00, $00, $60, $50, $00, $00, $7D, $01, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $3C, $3F, $78, $6D, $6C, $20, $76, $65, $72, $73, $69, $6F, $6E, $3D, $27, $31, + $2E, $30, $27, $20, $65, $6E, $63, $6F, $64, $69, $6E, $67, $3D, $27, $55, $54, + $46, $2D, $38, $27, $20, $73, $74, $61, $6E, $64, $61, $6C, $6F, $6E, $65, $3D, + $27, $79, $65, $73, $27, $3F, $3E, $0D, $0A, $3C, $61, $73, $73, $65, $6D, $62, + $6C, $79, $20, $78, $6D, $6C, $6E, $73, $3D, $27, $75, $72, $6E, $3A, $73, $63, + $68, $65, $6D, $61, $73, $2D, $6D, $69, $63, $72, $6F, $73, $6F, $66, $74, $2D, + $63, $6F, $6D, $3A, $61, $73, $6D, $2E, $76, $31, $27, $20, $6D, $61, $6E, $69, + $66, $65, $73, $74, $56, $65, $72, $73, $69, $6F, $6E, $3D, $27, $31, $2E, $30, + $27, $3E, $0D, $0A, $20, $20, $3C, $74, $72, $75, $73, $74, $49, $6E, $66, $6F, + $20, $78, $6D, $6C, $6E, $73, $3D, $22, $75, $72, $6E, $3A, $73, $63, $68, $65, + $6D, $61, $73, $2D, $6D, $69, $63, $72, $6F, $73, $6F, $66, $74, $2D, $63, $6F, + $6D, $3A, $61, $73, $6D, $2E, $76, $33, $22, $3E, $0D, $0A, $20, $20, $20, $20, + $3C, $73, $65, $63, $75, $72, $69, $74, $79, $3E, $0D, $0A, $20, $20, $20, $20, + $20, $20, $3C, $72, $65, $71, $75, $65, $73, $74, $65, $64, $50, $72, $69, $76, + $69, $6C, $65, $67, $65, $73, $3E, $0D, $0A, $20, $20, $20, $20, $20, $20, $20, + $20, $3C, $72, $65, $71, $75, $65, $73, $74, $65, $64, $45, $78, $65, $63, $75, + $74, $69, $6F, $6E, $4C, $65, $76, $65, $6C, $20, $6C, $65, $76, $65, $6C, $3D, + $27, $61, $73, $49, $6E, $76, $6F, $6B, $65, $72, $27, $20, $75, $69, $41, $63, + $63, $65, $73, $73, $3D, $27, $66, $61, $6C, $73, $65, $27, $20, $2F, $3E, $0D, + $0A, $20, $20, $20, $20, $20, $20, $3C, $2F, $72, $65, $71, $75, $65, $73, $74, + $65, $64, $50, $72, $69, $76, $69, $6C, $65, $67, $65, $73, $3E, $0D, $0A, $20, + $20, $20, $20, $3C, $2F, $73, $65, $63, $75, $72, $69, $74, $79, $3E, $0D, $0A, + $20, $20, $3C, $2F, $74, $72, $75, $73, $74, $49, $6E, $66, $6F, $3E, $0D, $0A, + $3C, $2F, $61, $73, $73, $65, $6D, $62, $6C, $79, $3E, $0D, $0A, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $10, $00, $00, $54, $01, $00, $00, $18, $30, $34, $30, $4F, $30, $62, $30, + $86, $30, $94, $30, $9B, $30, $A3, $30, $C2, $30, $D2, $30, $08, $31, $77, $31, + $C5, $31, $CC, $31, $F2, $31, $05, $32, $1F, $32, $2B, $32, $3A, $32, $6A, $32, + $9C, $32, $20, $33, $2E, $33, $35, $33, $40, $33, $54, $33, $59, $33, $60, $33, + $65, $33, $6D, $33, $72, $33, $77, $33, $7D, $33, $82, $33, $89, $33, $95, $33, + $9B, $33, $AB, $33, $B8, $33, $FA, $34, $02, $35, $07, $35, $0C, $35, $29, $35, + $38, $35, $40, $35, $5A, $35, $67, $35, $75, $35, $7A, $35, $8F, $35, $95, $35, + $A2, $35, $A8, $35, $AD, $35, $B2, $35, $B8, $35, $BE, $35, $C3, $35, $F2, $35, + $13, $36, $32, $36, $3F, $36, $53, $36, $59, $36, $73, $36, $7E, $36, $8B, $36, + $A2, $36, $B0, $36, $C3, $36, $C9, $36, $E3, $36, $E9, $36, $FA, $36, $01, $37, + $07, $37, $36, $37, $3D, $37, $6F, $37, $79, $37, $9D, $37, $B0, $37, $D7, $37, + $DC, $37, $0D, $38, $36, $38, $3B, $38, $42, $38, $58, $38, $8C, $38, $9F, $38, + $C0, $38, $C4, $38, $C8, $38, $CC, $38, $D3, $38, $DF, $38, $F6, $38, $06, $39, + $0C, $39, $16, $39, $1E, $39, $2B, $39, $30, $39, $41, $39, $47, $39, $52, $39, + $5A, $39, $5F, $39, $65, $39, $71, $39, $80, $39, $A8, $39, $BC, $39, $E3, $39, + $59, $3A, $D9, $3A, $EC, $3A, $09, $3B, $1A, $3B, $25, $3B, $3C, $3B, $49, $3B, + $67, $3B, $6D, $3B, $96, $3B, $A5, $3B, $E9, $3B, $F6, $3B, $0B, $3C, $3B, $3C, + $48, $3C, $4F, $3C, $60, $3C, $66, $3C, $7F, $3C, $AA, $3C, $05, $3D, $0F, $3D, + $16, $3D, $46, $3D, $5F, $3D, $96, $3D, $A6, $3D, $C9, $3D, $FB, $3D, $05, $3E, + $0B, $3E, $18, $3E, $1E, $3E, $2B, $3E, $40, $3E, $49, $3E, $5D, $3E, $6A, $3E, + $71, $3E, $77, $3E, $7D, $3E, $83, $3E, $89, $3E, $8F, $3E, $95, $3E, $9B, $3E, + $B5, $3E, $D7, $3E, $00, $20, $00, $00, $78, $00, $00, $00, $1B, $30, $B3, $32, + $D6, $32, $04, $33, $0C, $33, $27, $33, $5E, $33, $6C, $33, $81, $33, $B6, $33, + $70, $34, $0C, $35, $16, $35, $97, $35, $A8, $35, $C0, $35, $E2, $35, $E9, $35, + $F4, $35, $F9, $35, $23, $36, $8B, $36, $90, $36, $97, $36, $D4, $38, $EA, $38, + $F3, $38, $FE, $38, $05, $39, $25, $39, $2B, $39, $31, $39, $37, $39, $3D, $39, + $43, $39, $4A, $39, $51, $39, $58, $39, $5F, $39, $66, $39, $6D, $39, $74, $39, + $7C, $39, $84, $39, $8C, $39, $98, $39, $A1, $39, $A6, $39, $AC, $39, $B6, $39, + $C0, $39, $D0, $39, $E0, $39, $F0, $39, $F9, $39, $08, $3A, $00, $30, $00, $00, + $14, $00, $00, $00, $B0, $30, $C0, $30, $C4, $30, $8C, $36, $98, $36, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 + ); + + defHelperDatas: array[0..36319] of Byte = ( + $4D, $5A, $50, $00, $02, $00, $00, $00, $04, $00, $0F, $00, $FF, $FF, $00, $00, + $B8, $00, $00, $00, $00, $00, $00, $00, $40, $00, $1A, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, + $BA, $10, $00, $0E, $1F, $B4, $09, $CD, $21, $B8, $01, $4C, $CD, $21, $90, $90, + $54, $68, $69, $73, $20, $70, $72, $6F, $67, $72, $61, $6D, $20, $6D, $75, $73, + $74, $20, $62, $65, $20, $72, $75, $6E, $20, $75, $6E, $64, $65, $72, $20, $57, + $69, $6E, $33, $32, $0D, $0A, $24, $37, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $50, $45, $00, $00, $4C, $01, $08, $00, $45, $BD, $F7, $57, $00, $00, $00, $00, + $00, $00, $00, $00, $E0, $00, $8E, $A1, $0B, $01, $02, $19, $00, $3E, $00, $00, + $00, $30, $00, $00, $00, $00, $00, $00, $D4, $50, $00, $00, $00, $10, $00, $00, + $00, $60, $00, $00, $00, $00, $40, $00, $00, $10, $00, $00, $00, $02, $00, $00, + $04, $00, $00, $00, $00, $00, $00, $00, $04, $00, $00, $00, $00, $00, $00, $00, + $00, $F0, $00, $00, $00, $04, $00, $00, $9E, $52, $01, $00, $02, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $10, $00, $00, $10, $00, $00, + $00, $00, $00, $00, $10, $00, $00, $00, $00, $B0, $00, $00, $6B, $00, $00, $00, + $00, $A0, $00, $00, $D8, $04, $00, $00, $00, $D0, $00, $00, $00, $16, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $72, $00, $00, $E0, $1B, $00, $00, + $00, $C0, $00, $00, $C4, $03, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $44, $A1, $00, $00, $B8, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $2E, $74, $65, $78, $74, $00, $00, $00, + $D4, $3A, $00, $00, $00, $10, $00, $00, $00, $3C, $00, $00, $00, $04, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $20, $00, $00, $60, + $2E, $69, $74, $65, $78, $74, $00, $00, $EC, $00, $00, $00, $00, $50, $00, $00, + $00, $02, $00, $00, $00, $40, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $20, $00, $00, $60, $2E, $64, $61, $74, $61, $00, $00, $00, + $E4, $0C, $00, $00, $00, $60, $00, $00, $00, $0E, $00, $00, $00, $42, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $00, $00, $C0, + $2E, $62, $73, $73, $00, $00, $00, $00, $10, $28, $00, $00, $00, $70, $00, $00, + $00, $00, $00, $00, $00, $50, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $C0, $2E, $69, $64, $61, $74, $61, $00, $00, + $D8, $04, $00, $00, $00, $A0, $00, $00, $00, $06, $00, $00, $00, $50, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $00, $00, $C0, + $2E, $65, $64, $61, $74, $61, $00, $00, $6B, $00, $00, $00, $00, $B0, $00, $00, + $00, $02, $00, $00, $00, $56, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $40, $00, $00, $40, $2E, $72, $65, $6C, $6F, $63, $00, $00, + $C4, $03, $00, $00, $00, $C0, $00, $00, $00, $04, $00, $00, $00, $58, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $00, $00, $42, + $2E, $72, $73, $72, $63, $00, $00, $00, $00, $16, $00, $00, $00, $D0, $00, $00, + $00, $16, $00, $00, $00, $5C, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $40, $00, $00, $40, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $F0, $00, $00, $00, $00, $00, $00, $00, $72, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $00, $00, $40, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $FF, $25, $9C, $A1, $40, $00, $8B, $C0, $FF, $25, $98, $A1, $40, $00, $8B, $C0, + $FF, $25, $94, $A1, $40, $00, $8B, $C0, $FF, $25, $90, $A1, $40, $00, $8B, $C0, + $FF, $25, $8C, $A1, $40, $00, $8B, $C0, $FF, $25, $88, $A1, $40, $00, $8B, $C0, + $FF, $25, $5C, $A1, $40, $00, $8B, $C0, $FF, $25, $84, $A1, $40, $00, $8B, $C0, + $FF, $25, $80, $A1, $40, $00, $8B, $C0, $FF, $25, $7C, $A1, $40, $00, $8B, $C0, + $FF, $25, $4C, $A1, $40, $00, $8B, $C0, $FF, $25, $48, $A1, $40, $00, $8B, $C0, + $FF, $25, $44, $A1, $40, $00, $8B, $C0, $FF, $25, $78, $A1, $40, $00, $8B, $C0, + $FF, $25, $74, $A1, $40, $00, $8B, $C0, $53, $83, $C4, $BC, $BB, $0A, $00, $00, + $00, $54, $E8, $C1, $FF, $FF, $FF, $F6, $44, $24, $2C, $01, $74, $05, $0F, $B7, + $5C, $24, $30, $8B, $C3, $83, $C4, $44, $5B, $C3, $8B, $C0, $FF, $25, $70, $A1, + $40, $00, $8B, $C0, $FF, $25, $6C, $A1, $40, $00, $8B, $C0, $FF, $25, $68, $A1, + $40, $00, $8B, $C0, $FF, $25, $58, $A1, $40, $00, $8B, $C0, $FF, $FF, $FF, $FF, + $57, $00, $00, $00, $46, $61, $73, $74, $4D, $4D, $20, $42, $6F, $72, $6C, $61, + $6E, $64, $20, $45, $64, $69, $74, $69, $6F, $6E, $20, $A9, $20, $32, $30, $30, + $34, $2C, $20, $32, $30, $30, $35, $20, $50, $69, $65, $72, $72, $65, $20, $6C, + $65, $20, $52, $69, $63, $68, $65, $20, $2F, $20, $50, $72, $6F, $66, $65, $73, + $73, $69, $6F, $6E, $61, $6C, $20, $53, $6F, $66, $74, $77, $61, $72, $65, $20, + $44, $65, $76, $65, $6C, $6F, $70, $6D, $65, $6E, $74, $00, $F0, $0F, $B0, $11, + $C3, $8D, $40, $00, $8B, $08, $89, $0A, $8B, $48, $04, $8B, $40, $08, $89, $4A, + $04, $89, $42, $08, $C3, $8D, $40, $00, $8B, $08, $89, $0A, $8B, $48, $04, $89, + $4A, $04, $8B, $48, $08, $89, $4A, $08, $8B, $48, $0C, $8B, $40, $10, $89, $4A, + $0C, $89, $42, $10, $C3, $8D, $40, $00, $8B, $08, $89, $0A, $8B, $48, $04, $89, + $4A, $04, $8B, $48, $08, $89, $4A, $08, $8B, $48, $0C, $89, $4A, $0C, $8B, $48, + $10, $89, $4A, $10, $8B, $48, $14, $8B, $40, $18, $89, $4A, $14, $89, $42, $18, + $C3, $8D, $40, $00, $DF, $28, $DF, $68, $08, $DF, $68, $10, $DF, $68, $18, $8B, + $48, $20, $89, $4A, $20, $DF, $7A, $18, $DF, $7A, $10, $DF, $7A, $08, $DF, $3A, + $C3, $8D, $40, $00, $DF, $28, $DF, $68, $08, $DF, $68, $10, $DF, $68, $18, $DF, + $68, $20, $8B, $48, $28, $89, $4A, $28, $DF, $7A, $20, $DF, $7A, $18, $DF, $7A, + $10, $DF, $7A, $08, $DF, $3A, $C3, $90, $DF, $28, $DF, $68, $08, $DF, $68, $10, + $DF, $68, $18, $DF, $68, $20, $DF, $68, $28, $8B, $48, $30, $89, $4A, $30, $DF, + $7A, $28, $DF, $7A, $20, $DF, $7A, $18, $DF, $7A, $10, $DF, $7A, $08, $DF, $3A, + $C3, $8D, $40, $00, $DF, $28, $DF, $68, $08, $DF, $68, $10, $DF, $68, $18, $DF, + $68, $20, $DF, $68, $28, $DF, $68, $30, $8B, $48, $38, $89, $4A, $38, $DF, $7A, + $30, $DF, $7A, $28, $DF, $7A, $20, $DF, $7A, $18, $DF, $7A, $10, $DF, $7A, $08, + $DF, $3A, $C3, $90, $DF, $28, $DF, $68, $08, $DF, $68, $10, $DF, $68, $18, $DF, + $68, $20, $DF, $68, $28, $DF, $68, $30, $DF, $68, $38, $8B, $48, $40, $89, $4A, + $40, $DF, $7A, $38, $DF, $7A, $30, $DF, $7A, $28, $DF, $7A, $20, $DF, $7A, $18, + $DF, $7A, $10, $DF, $7A, $08, $DF, $3A, $C3, $8D, $40, $00, $83, $E9, $0C, $01, + $C8, $01, $CA, $F7, $D9, $79, $13, $DF, $2C, $01, $DF, $6C, $01, $08, $DF, $7C, + $11, $08, $DF, $3C, $11, $83, $C1, $10, $78, $ED, $DF, $2C, $01, $DF, $3C, $11, + $8B, $44, $01, $08, $89, $44, $11, $08, $C3, $8D, $40, $00, $83, $E9, $04, $01, + $C8, $01, $CA, $F7, $D9, $DF, $2C, $01, $DF, $3C, $11, $83, $C1, $08, $78, $F5, + $8B, $04, $01, $89, $04, $11, $C3, $90, $8B, $48, $04, $8B, $10, $39, $D1, $89, + $11, $89, $4A, $04, $74, $02, $C3, $90, $81, $E9, $90, $77, $40, $00, $89, $CA, + $C1, $E9, $03, $0F, $B6, $D6, $B8, $FE, $FF, $FF, $FF, $D3, $C0, $21, $04, $95, + $10, $77, $40, $00, $75, $E0, $B8, $FE, $FF, $FF, $FF, $89, $D1, $D3, $C0, $21, + $05, $0C, $77, $40, $00, $C3, $8B, $C0, $81, $EA, $30, $0B, $00, $00, $C1, $EA, + $08, $81, $EA, $FF, $03, $00, $00, $19, $C9, $21, $CA, $81, $C2, $FF, $03, $00, + $00, $8D, $0C, $D5, $90, $77, $40, $00, $8B, $51, $04, $39, $CA, $89, $08, $89, + $50, $04, $89, $02, $89, $41, $04, $74, $03, $C3, $90, $90, $81, $E9, $90, $77, + $40, $00, $89, $CA, $C1, $E9, $03, $0F, $B6, $D6, $B8, $01, $00, $00, $00, $D3, + $E0, $09, $04, $95, $10, $77, $40, $00, $B8, $01, $00, $00, $00, $89, $D1, $D3, + $E0, $09, $05, $0C, $77, $40, $00, $C3, $83, $3D, $08, $77, $40, $00, $00, $75, + $03, $C3, $90, $90, $A1, $04, $77, $40, $00, $F6, $40, $FC, $01, $75, $25, $83, + $48, $FC, $08, $8B, $15, $08, $77, $40, $00, $29, $D0, $8D, $4A, $03, $89, $48, + $FC, $89, $54, $02, $F8, $81, $FA, $30, $0B, $00, $00, $0F, $83, $67, $FF, $FF, + $FF, $C3, $90, $90, $BA, $F0, $FF, $FF, $FF, $23, $50, $FC, $81, $FA, $30, $0B, + $00, $00, $72, $12, $E8, $0F, $FF, $FF, $FF, $A1, $04, $77, $40, $00, $BA, $F0, + $FF, $FF, $FF, $23, $50, $FC, $8B, $0D, $08, $77, $40, $00, $29, $C8, $01, $CA, + $EB, $B9, $C3, $90, $53, $8B, $D8, $E8, $8C, $FF, $FF, $FF, $6A, $04, $68, $00, + $10, $00, $00, $68, $F0, $FF, $13, $00, $6A, $00, $E8, $CD, $FC, $FF, $FF, $85, + $C0, $74, $4D, $8B, $15, $F4, $76, $40, $00, $8B, $C8, $C7, $01, $F0, $76, $40, + $00, $A3, $F4, $76, $40, $00, $89, $51, $04, $89, $02, $8B, $D0, $81, $C2, $F0, + $FF, $13, $00, $8B, $CA, $83, $E9, $04, $C7, $01, $02, $00, $00, $00, $B9, $E0, + $FF, $13, $00, $2B, $CB, $89, $0D, $08, $77, $40, $00, $2B, $D3, $8B, $C2, $A3, + $04, $77, $40, $00, $83, $CB, $02, $8B, $D0, $83, $EA, $04, $89, $1A, $5B, $C3, + $33, $C0, $A3, $08, $77, $40, $00, $33, $C0, $5B, $C3, $90, $80, $3D, $35, $70, + $40, $00, $00, $74, $3D, $EB, $29, $80, $3D, $9D, $75, $40, $00, $00, $75, $20, + $6A, $00, $E8, $65, $FC, $FF, $FF, $B9, $90, $97, $40, $00, $B2, $01, $33, $C0, + $E8, $C7, $FC, $FF, $FF, $84, $C0, $74, $19, $6A, $0A, $E8, $4C, $FC, $FF, $FF, + $B9, $90, $97, $40, $00, $B2, $01, $33, $C0, $E8, $AE, $FC, $FF, $FF, $84, $C0, + $75, $C5, $C3, $90, $53, $56, $57, $55, $8B, $E8, $8D, $B5, $10, $00, $01, $00, + $4E, $83, $C6, $04, $81, $E6, $00, $00, $FF, $FF, $6A, $04, $68, $00, $10, $10, + $00, $56, $6A, $00, $E8, $03, $FC, $FF, $FF, $8B, $D8, $85, $DB, $74, $30, $8B, + $FB, $89, $6F, $08, $83, $CE, $04, $89, $77, $0C, $E8, $7D, $FF, $FF, $FF, $A1, + $98, $97, $40, $00, $C7, $07, $94, $97, $40, $00, $89, $1D, $98, $97, $40, $00, + $89, $47, $04, $89, $18, $C6, $05, $90, $97, $40, $00, $00, $83, $C3, $10, $8B, + $C3, $5D, $5F, $5E, $5B, $C3, $8B, $C0, $53, $56, $57, $55, $83, $C4, $DC, $8B, + $F0, $83, $EE, $10, $E8, $43, $FF, $FF, $FF, $8B, $C6, $8B, $10, $89, $14, $24, + $8B, $50, $04, $89, $54, $24, $04, $8B, $50, $0C, $F6, $C2, $08, $75, $1A, $68, + $00, $80, $00, $00, $6A, $00, $56, $E8, $98, $FB, $FF, $FF, $85, $C0, $74, $04, + $33, $FF, $EB, $3F, $83, $CF, $FF, $EB, $3A, $8B, $DE, $8B, $EA, $83, $E5, $F0, + $33, $FF, $6A, $1C, $8D, $44, $24, $0C, $50, $53, $E8, $39, $FB, $FF, $FF, $68, + $00, $80, $00, $00, $6A, $00, $53, $E8, $68, $FB, $FF, $FF, $85, $C0, $75, $05, + $83, $CF, $FF, $EB, $0E, $8B, $74, $24, $14, $3B, $EE, $76, $06, $2B, $EE, $01, + $F3, $EB, $CF, $85, $FF, $75, $13, $8B, $44, $24, $04, $8B, $14, $24, $89, $10, + $8B, $04, $24, $8B, $54, $24, $04, $89, $50, $04, $C6, $05, $90, $97, $40, $00, + $00, $8B, $C7, $83, $C4, $24, $5D, $5F, $5E, $5B, $C3, $90, $53, $56, $57, $55, + $83, $C4, $E0, $8B, $F2, $8B, $F8, $8B, $C7, $83, $E8, $04, $8B, $00, $8B, $D8, + $83, $E3, $F0, $83, $EB, $14, $3B, $DE, $0F, $83, $E1, $00, $00, $00, $8B, $D3, + $C1, $EA, $02, $03, $D3, $3B, $D6, $76, $04, $8B, $EA, $EB, $02, $8B, $EE, $8B, + $D7, $83, $EA, $10, $83, $E0, $F0, $03, $D0, $89, $14, $24, $6A, $1C, $8D, $44, + $24, $08, $50, $8B, $44, $24, $08, $50, $E8, $9B, $FA, $FF, $FF, $81, $7C, $24, + $14, $00, $00, $01, $00, $75, $70, $81, $64, $24, $10, $00, $00, $FF, $FF, $8B, + $D6, $2B, $D3, $8B, $44, $24, $10, $3B, $D0, $73, $5C, $8B, $D5, $2B, $D3, $81, + $C2, $00, $00, $01, $00, $4A, $81, $E2, $00, $00, $FF, $FF, $8B, $DA, $3B, $C3, + $73, $02, $8B, $D8, $6A, $04, $68, $00, $20, $00, $00, $53, $8B, $44, $24, $0C, + $50, $E8, $86, $FA, $FF, $FF, $85, $C0, $74, $2D, $6A, $04, $68, $00, $10, $00, + $00, $53, $8B, $44, $24, $0C, $50, $E8, $70, $FA, $FF, $FF, $85, $C0, $74, $17, + $8B, $C7, $83, $E8, $10, $89, $70, $08, $8B, $D0, $03, $5A, $0C, $83, $CB, $08, + $89, $5A, $0C, $8B, $DF, $EB, $77, $8B, $C5, $E8, $7A, $00, $00, $00, $8B, $D8, + $85, $DB, $74, $6A, $81, $FD, $2C, $0A, $04, $00, $76, $08, $8B, $C3, $83, $E8, + $10, $89, $70, $08, $8B, $C7, $83, $E8, $10, $8B, $40, $08, $8B, $D3, $8B, $CF, + $91, $E8, $E6, $FB, $FF, $FF, $8B, $C7, $E8, $CF, $03, $00, $00, $EB, $3F, $D1, + $EB, $3B, $F3, $72, $0A, $8B, $DF, $83, $EF, $10, $89, $77, $08, $EB, $2F, $8B, + $C6, $E8, $32, $00, $00, $00, $8B, $D8, $85, $DB, $74, $22, $81, $FE, $2C, $0A, + $04, $00, $76, $08, $8B, $C7, $83, $E8, $10, $89, $70, $08, $8B, $D3, $8B, $C7, + $8B, $CE, $E8, $D5, $FB, $FF, $FF, $8B, $C7, $E8, $8E, $03, $00, $00, $8B, $C3, + $83, $C4, $20, $5D, $5F, $5E, $5B, $C3, $8D, $50, $03, $C1, $EA, $03, $3D, $2C, + $0A, $00, $00, $53, $8A, $0D, $35, $70, $40, $00, $0F, $87, $48, $02, $00, $00, + $84, $C9, $0F, $B6, $82, $A8, $75, $40, $00, $8D, $1C, $C5, $28, $60, $40, $00, + $75, $56, $8B, $53, $04, $8B, $42, $08, $B9, $F8, $FF, $FF, $FF, $39, $DA, $74, + $17, $83, $42, $0C, $01, $23, $48, $FC, $89, $4A, $08, $89, $50, $FC, $74, $28, + $C6, $03, $00, $5B, $C3, $90, $90, $90, $8B, $53, $10, $0F, $B7, $4B, $02, $01, + $C1, $3B, $43, $0C, $77, $76, $83, $42, $0C, $01, $89, $4B, $08, $C6, $03, $00, + $89, $50, $FC, $5B, $C3, $90, $90, $90, $8B, $4A, $04, $89, $59, $14, $89, $4B, + $04, $C6, $03, $00, $5B, $C3, $90, $90, $B8, $00, $01, $00, $00, $F0, $0F, $B0, + $23, $74, $9F, $83, $C3, $20, $B8, $00, $01, $00, $00, $F0, $0F, $B0, $23, $74, + $91, $83, $C3, $20, $B8, $00, $01, $00, $00, $F0, $0F, $B0, $23, $74, $83, $83, + $EB, $40, $F3, $90, $80, $3D, $9D, $75, $40, $00, $00, $75, $CB, $6A, $00, $E8, + $28, $F9, $FF, $FF, $B8, $00, $01, $00, $00, $F0, $0F, $B0, $23, $0F, $84, $5F, + $FF, $FF, $FF, $6A, $0A, $E8, $12, $F9, $FF, $FF, $EB, $AC, $56, $57, $80, $3D, + $35, $70, $40, $00, $00, $74, $39, $B8, $00, $01, $00, $00, $F0, $0F, $B0, $25, + $00, $77, $40, $00, $74, $2A, $F3, $90, $80, $3D, $9D, $75, $40, $00, $00, $75, + $E6, $6A, $00, $E8, $E4, $F8, $FF, $FF, $B8, $00, $01, $00, $00, $F0, $0F, $B0, + $25, $00, $77, $40, $00, $74, $09, $6A, $0A, $E8, $CE, $F8, $FF, $FF, $EB, $C7, + $0F, $BE, $73, $01, $23, $35, $0C, $77, $40, $00, $74, $70, $0F, $BC, $C6, $8D, + $34, $C5, $00, $00, $00, $00, $8B, $0C, $85, $10, $77, $40, $00, $0F, $BC, $C9, + $8D, $0C, $B1, $8D, $3C, $CD, $90, $77, $40, $00, $8B, $77, $04, $8B, $56, $04, + $89, $57, $04, $89, $3A, $39, $D7, $75, $17, $BA, $FE, $FF, $FF, $FF, $D3, $C2, + $21, $14, $85, $10, $77, $40, $00, $75, $07, $0F, $B3, $05, $0C, $77, $40, $00, + $BF, $F0, $FF, $FF, $FF, $23, $7E, $FC, $81, $FF, $60, $0A, $01, $00, $72, $6C, + $89, $FA, $0F, $B7, $7B, $1A, $29, $FA, $8D, $04, $37, $8D, $4A, $03, $89, $48, + $FC, $89, $54, $02, $F8, $E8, $8E, $FA, $FF, $FF, $EB, $55, $0F, $B7, $4B, $18, + $8B, $3D, $08, $77, $40, $00, $39, $CF, $72, $26, $8B, $35, $04, $77, $40, $00, + $0F, $B7, $4B, $1A, $8D, $91, $30, $0B, $00, $00, $39, $D7, $72, $02, $89, $CF, + $29, $FE, $29, $3D, $08, $77, $40, $00, $89, $35, $04, $77, $40, $00, $EB, $21, + $0F, $B7, $43, $1A, $89, $C7, $E8, $19, $FB, $FF, $FF, $89, $C6, $85, $C0, $75, + $10, $A2, $00, $77, $40, $00, $88, $03, $5F, $5E, $5B, $C3, $80, $64, $37, $FC, + $F7, $8D, $4F, $06, $89, $4E, $FC, $31, $C0, $A2, $00, $77, $40, $00, $89, $1E, + $89, $46, $08, $C7, $46, $0C, $01, $00, $00, $00, $89, $73, $10, $8D, $46, $20, + $0F, $B7, $4B, $02, $8D, $14, $01, $89, $53, $08, $01, $F7, $29, $CF, $89, $7B, + $0C, $C6, $03, $00, $89, $70, $FC, $5F, $5E, $5B, $C3, $90, $B8, $00, $01, $00, + $00, $F0, $0F, $B0, $25, $00, $77, $40, $00, $74, $4B, $F3, $90, $80, $3D, $9D, + $75, $40, $00, $00, $75, $E6, $6A, $00, $E8, $9F, $F7, $FF, $FF, $B8, $00, $01, + $00, $00, $F0, $0F, $B0, $25, $00, $77, $40, $00, $74, $2A, $6A, $0A, $E8, $89, + $F7, $FF, $FF, $EB, $C7, $90, $90, $90, $3D, $2C, $0A, $04, $00, $0F, $87, $0D, + $01, $00, $00, $8D, $98, $D3, $00, $00, $00, $81, $E3, $00, $FF, $FF, $FF, $83, + $C3, $30, $84, $C9, $75, $A6, $8D, $93, $D0, $F4, $FF, $FF, $89, $D1, $C1, $EA, + $0D, $C1, $E9, $08, $B8, $FF, $FF, $FF, $FF, $D3, $E0, $23, $04, $95, $10, $77, + $40, $00, $74, $0C, $83, $E1, $E0, $0F, $BC, $C0, $09, $C1, $EB, $5E, $90, $90, + $B8, $FE, $FF, $FF, $FF, $89, $D1, $D3, $E0, $23, $05, $0C, $77, $40, $00, $74, + $17, $0F, $BC, $D0, $8B, $04, $95, $10, $77, $40, $00, $0F, $BC, $C8, $89, $D0, + $C1, $E0, $05, $09, $C1, $EB, $35, $90, $8B, $0D, $08, $77, $40, $00, $29, $D9, + $72, $1A, $A1, $04, $77, $40, $00, $29, $D8, $A3, $04, $77, $40, $00, $89, $0D, + $08, $77, $40, $00, $83, $CB, $02, $89, $58, $FC, $EB, $07, $89, $D8, $E8, $F1, + $F9, $FF, $FF, $C6, $05, $00, $77, $40, $00, $00, $5B, $C3, $56, $57, $8D, $3C, + $CD, $90, $77, $40, $00, $8B, $77, $04, $8B, $46, $04, $89, $47, $04, $89, $38, + $39, $C7, $75, $17, $B8, $FE, $FF, $FF, $FF, $D3, $C0, $21, $04, $95, $10, $77, + $40, $00, $75, $07, $0F, $B3, $15, $0C, $77, $40, $00, $BF, $F0, $FF, $FF, $FF, + $23, $7E, $FC, $89, $FA, $29, $DA, $74, $1F, $8D, $04, $33, $8D, $4A, $03, $89, + $48, $FC, $89, $54, $02, $F8, $81, $FA, $30, $0B, $00, $00, $72, $0F, $E8, $C5, + $F8, $FF, $FF, $EB, $08, $90, $90, $90, $80, $64, $37, $FC, $F7, $8D, $4B, $02, + $89, $4E, $FC, $C6, $05, $00, $77, $40, $00, $00, $89, $F0, $5F, $5E, $5B, $C3, + $5B, $85, $C0, $0F, $89, $2B, $FA, $FF, $FF, $31, $C0, $C3, $8B, $50, $FC, $F6, + $C2, $07, $89, $C1, $53, $8A, $1D, $35, $70, $40, $00, $0F, $85, $E3, $00, $00, + $00, $84, $DB, $8B, $1A, $75, $61, $83, $6A, $0C, $01, $8B, $42, $08, $74, $2C, + $85, $C0, $89, $4A, $08, $8D, $40, $01, $89, $41, $FC, $74, $07, $31, $C0, $88, + $03, $5B, $C3, $90, $8B, $4B, $04, $89, $5A, $14, $89, $4A, $04, $89, $51, $14, + $89, $53, $04, $C6, $03, $00, $31, $C0, $5B, $C3, $90, $90, $85, $C0, $74, $13, + $8B, $42, $14, $8B, $4A, $04, $89, $48, $04, $89, $41, $14, $31, $C0, $39, $53, + $10, $75, $03, $89, $43, $0C, $88, $03, $89, $D0, $8B, $52, $FC, $8A, $1D, $35, + $70, $40, $00, $E9, $85, $00, $00, $00, $B8, $00, $01, $00, $00, $F0, $0F, $B0, + $23, $74, $94, $F3, $90, $80, $3D, $9D, $75, $40, $00, $00, $75, $EA, $51, $52, + $6A, $00, $E8, $C5, $F5, $FF, $FF, $5A, $59, $B8, $00, $01, $00, $00, $F0, $0F, + $B0, $23, $0F, $84, $6F, $FF, $FF, $FF, $51, $52, $6A, $0A, $E8, $AB, $F5, $FF, + $FF, $5A, $59, $EB, $C3, $90, $90, $90, $B8, $00, $01, $00, $00, $F0, $0F, $B0, + $25, $00, $77, $40, $00, $74, $42, $F3, $90, $80, $3D, $9D, $75, $40, $00, $00, + $75, $E6, $6A, $00, $E8, $83, $F5, $FF, $FF, $B8, $00, $01, $00, $00, $F0, $0F, + $B0, $25, $00, $77, $40, $00, $74, $21, $6A, $0A, $E8, $6D, $F5, $FF, $FF, $EB, + $C7, $90, $90, $90, $F6, $C2, $05, $0F, $85, $E7, $00, $00, $00, $83, $E2, $F0, + $84, $DB, $89, $D3, $56, $89, $C6, $75, $AF, $F7, $44, $33, $FC, $01, $00, $00, + $00, $8B, $4C, $33, $FC, $75, $35, $83, $C9, $08, $89, $4C, $33, $FC, $F6, $46, + $FC, $08, $75, $40, $81, $FB, $E0, $FF, $13, $00, $74, $50, $8D, $43, $03, $89, + $46, $FC, $89, $5C, $33, $F8, $89, $F0, $89, $DA, $E8, $59, $F7, $FF, $FF, $C6, + $05, $00, $77, $40, $00, $00, $31, $C0, $5E, $5B, $C3, $90, $8D, $04, $33, $83, + $E1, $F0, $01, $CB, $81, $F9, $30, $0B, $00, $00, $72, $C2, $E8, $F7, $F6, $FF, + $FF, $EB, $BB, $90, $8B, $4E, $F8, $29, $CE, $01, $CB, $81, $F9, $30, $0B, $00, + $00, $72, $B1, $89, $F0, $E8, $DE, $F6, $FF, $FF, $EB, $A8, $81, $3D, $08, $77, + $40, $00, $E0, $FF, $13, $00, $75, $2C, $83, $EE, $10, $8B, $06, $8B, $56, $04, + $89, $50, $04, $89, $02, $C6, $05, $00, $77, $40, $00, $00, $68, $00, $80, $00, + $00, $6A, $00, $56, $E8, $AB, $F4, $FF, $FF, $83, $F8, $01, $19, $C0, $5E, $5B, + $C3, $90, $90, $90, $8D, $9E, $E0, $FF, $13, $00, $E8, $39, $F7, $FF, $FF, $C7, + $43, $FC, $02, $00, $00, $00, $C7, $05, $08, $77, $40, $00, $E0, $FF, $13, $00, + $89, $1D, $04, $77, $40, $00, $C6, $05, $00, $77, $40, $00, $00, $31, $C0, $5E, + $5B, $C3, $90, $90, $5B, $F6, $C2, $03, $0F, $84, $9A, $F8, $FF, $FF, $B8, $FF, + $FF, $FF, $FF, $C3, $8B, $48, $FC, $F6, $C1, $07, $53, $56, $89, $C6, $0F, $85, + $88, $00, $00, $00, $8B, $19, $0F, $B7, $4B, $02, $83, $E9, $04, $39, $D1, $72, + $37, $8D, $1C, $95, $40, $00, $00, $00, $39, $CB, $72, $04, $5E, $5B, $C3, $90, + $89, $D3, $89, $D0, $E8, $4F, $FA, $FF, $FF, $85, $C0, $74, $16, $89, $D9, $89, + $C2, $89, $C3, $89, $F0, $E8, $02, $F6, $FF, $FF, $89, $F0, $E8, $BB, $FD, $FF, + $FF, $89, $D8, $5E, $5B, $C3, $90, $90, $8D, $4C, $09, $20, $57, $89, $D7, $31, + $C0, $29, $D1, $83, $D0, $FF, $21, $C8, $01, $D0, $E8, $19, $FA, $FF, $FF, $85, + $C0, $74, $24, $81, $FF, $2C, $0A, $04, $00, $76, $03, $89, $78, $F8, $0F, $B7, + $4B, $02, $83, $E9, $04, $89, $C2, $89, $C7, $89, $F0, $FF, $53, $1C, $89, $F0, + $E8, $77, $FD, $FF, $FF, $89, $F8, $5F, $5E, $5B, $C3, $90, $F6, $C1, $05, $0F, + $85, $67, $02, $00, $00, $89, $CB, $83, $E1, $F0, $57, $8D, $3C, $01, $83, $E9, + $04, $83, $E3, $0F, $39, $CA, $55, $0F, $87, $0F, $01, $00, $00, $8D, $2C, $12, + $39, $CD, $72, $08, $5D, $5F, $5E, $5B, $C3, $90, $90, $90, $81, $FA, $2C, $0B, + $00, $00, $73, $15, $81, $FA, $CC, $02, $00, $00, $0F, $82, $C4, $00, $00, $00, + $BA, $2C, $0B, $00, $00, $39, $D1, $76, $DB, $8D, $AA, $D3, $00, $00, $00, $81, + $E5, $00, $FF, $FF, $FF, $83, $C5, $30, $83, $C1, $04, $29, $E9, $80, $3D, $35, + $70, $40, $00, $00, $74, $46, $B8, $00, $01, $00, $00, $F0, $0F, $B0, $25, $00, + $77, $40, $00, $74, $2F, $F3, $90, $80, $3D, $9D, $75, $40, $00, $00, $75, $E6, + $51, $6A, $00, $E8, $44, $F3, $FF, $FF, $59, $B8, $00, $01, $00, $00, $F0, $0F, + $B0, $25, $00, $77, $40, $00, $74, $0C, $51, $6A, $0A, $E8, $2C, $F3, $FF, $FF, + $59, $EB, $C3, $90, $BB, $0F, $00, $00, $00, $23, $5E, $FC, $09, $EB, $89, $5E, + $FC, $89, $CB, $8B, $57, $FC, $F6, $C2, $01, $75, $09, $83, $CA, $08, $89, $57, + $FC, $EB, $17, $90, $89, $F8, $83, $E2, $F0, $01, $D3, $01, $D7, $81, $FA, $30, + $0B, $00, $00, $72, $05, $E8, $EE, $F4, $FF, $FF, $89, $5F, $F8, $8D, $43, $03, + $89, $44, $2E, $FC, $81, $FB, $30, $0B, $00, $00, $72, $0A, $8D, $04, $2E, $89, + $DA, $E8, $12, $F5, $FF, $FF, $C6, $05, $00, $77, $40, $00, $00, $89, $F0, $5D, + $5F, $5E, $5B, $C3, $89, $D7, $89, $D0, $E8, $DB, $F8, $FF, $FF, $85, $C0, $74, + $16, $89, $C5, $89, $C2, $89, $F0, $89, $F9, $E8, $8E, $F4, $FF, $FF, $89, $F0, + $E8, $47, $FC, $FF, $FF, $89, $E8, $5D, $5F, $5E, $5B, $C3, $8B, $47, $FC, $A8, + $01, $0F, $84, $ED, $00, $00, $00, $83, $E0, $F0, $8D, $2C, $01, $39, $EA, $0F, + $87, $DF, $00, $00, $00, $80, $3D, $35, $70, $40, $00, $00, $74, $5B, $B8, $00, + $01, $00, $00, $F0, $0F, $B0, $25, $00, $77, $40, $00, $74, $33, $F3, $90, $80, + $3D, $9D, $75, $40, $00, $00, $75, $E6, $51, $52, $6A, $00, $E8, $5B, $F2, $FF, + $FF, $5A, $59, $B8, $00, $01, $00, $00, $F0, $0F, $B0, $25, $00, $77, $40, $00, + $74, $0E, $51, $52, $6A, $0A, $E8, $41, $F2, $FF, $FF, $5A, $59, $EB, $BF, $90, + $BB, $0F, $00, $00, $00, $23, $5E, $FC, $8B, $47, $FC, $A8, $01, $74, $7E, $83, + $E0, $F0, $8D, $2C, $01, $39, $EA, $77, $74, $3D, $30, $0B, $00, $00, $72, $0B, + $89, $F8, $51, $52, $E8, $0F, $F4, $FF, $FF, $5A, $59, $89, $C8, $C1, $E8, $02, + $01, $C8, $31, $FF, $29, $D0, $83, $D7, $FF, $21, $F8, $8D, $84, $02, $D3, $00, + $00, $00, $25, $00, $FF, $FF, $FF, $83, $C0, $30, $8D, $55, $04, $29, $C2, $77, + $0B, $83, $24, $2E, $F7, $83, $C5, $04, $EB, $1E, $90, $90, $89, $54, $2E, $FC, + $8D, $7A, $03, $89, $7C, $30, $FC, $89, $C5, $81, $FA, $30, $0B, $00, $00, $72, + $07, $01, $F0, $E8, $00, $F4, $FF, $FF, $09, $DD, $89, $6E, $FC, $C6, $05, $00, + $77, $40, $00, $00, $89, $F0, $5D, $5F, $5E, $5B, $C3, $90, $90, $C6, $05, $00, + $77, $40, $00, $00, $89, $C8, $C1, $E8, $02, $01, $C8, $31, $FF, $29, $D0, $83, + $D7, $FF, $21, $F8, $01, $D0, $89, $C5, $89, $CF, $52, $E8, $A8, $F7, $FF, $FF, + $5A, $85, $C0, $74, $D1, $81, $FD, $2C, $0A, $04, $00, $76, $03, $89, $50, $F8, + $89, $C5, $89, $C2, $89, $F0, $89, $F9, $E8, $1F, $F3, $FF, $FF, $89, $F0, $E8, + $08, $FB, $FF, $FF, $89, $E8, $5D, $5F, $5E, $5B, $C3, $90, $5E, $5B, $F6, $C1, + $03, $0F, $84, $25, $F6, $FF, $FF, $31, $C0, $C3, $8B, $C0, $53, $8D, $58, $FF, + $83, $E3, $FC, $E8, $60, $F7, $FF, $FF, $83, $F8, $01, $19, $C9, $8D, $14, $03, + $09, $CB, $81, $FB, $2C, $0A, $04, $00, $73, $10, $F7, $DB, $D9, $EE, $DD, $14, + $13, $83, $C3, $08, $78, $F8, $89, $0A, $DD, $C0, $5B, $C3, $8B, $C8, $8B, $D1, + $83, $EA, $04, $8B, $12, $83, $E2, $F0, $03, $D1, $8B, $C2, $8B, $D0, $83, $EA, + $04, $8B, $12, $83, $E2, $F0, $85, $D2, $75, $02, $33, $C0, $C3, $8D, $40, $00, + $83, $3D, $08, $77, $40, $00, $00, $74, $1A, $8B, $15, $04, $77, $40, $00, $3B, + $D0, $72, $10, $8B, $D0, $81, $C2, $F0, $FF, $13, $00, $3B, $15, $04, $77, $40, + $00, $73, $04, $83, $C0, $10, $C3, $81, $3D, $08, $77, $40, $00, $E0, $FF, $13, + $00, $74, $07, $A1, $04, $77, $40, $00, $EB, $02, $33, $C0, $C3, $8D, $40, $00, + $53, $56, $8B, $D8, $83, $C3, $20, $89, $1A, $8B, $10, $3B, $42, $10, $75, $08, + $8B, $5A, $08, $3B, $5A, $0C, $76, $19, $8B, $F0, $8B, $DE, $83, $EB, $04, $8B, + $1B, $83, $E3, $F0, $03, $DE, $0F, $B7, $42, $02, $2B, $D8, $89, $19, $5E, $5B, + $C3, $8B, $42, $08, $48, $89, $01, $5E, $5B, $C3, $8B, $C0, $57, $89, $D7, $83, + $C0, $01, $BA, $41, $5F, $70, $89, $F7, $E2, $C1, $E8, $1E, $89, $D1, $81, $E2, + $FF, $FF, $FF, $1F, $C1, $E9, $1D, $8D, $14, $92, $01, $C2, $89, $C8, $83, $C8, + $30, $88, $07, $89, $D0, $83, $F9, $01, $83, $DF, $FF, $C1, $E8, $1C, $81, $E2, + $FF, $FF, $FF, $0F, $09, $C1, $83, $C8, $30, $88, $07, $8D, $04, $92, $8D, $14, + $92, $83, $F9, $01, $83, $DF, $FF, $C1, $E8, $1B, $81, $E2, $FF, $FF, $FF, $07, + $09, $C1, $83, $C8, $30, $88, $07, $8D, $04, $92, $8D, $14, $92, $83, $F9, $01, + $83, $DF, $FF, $C1, $E8, $1A, $81, $E2, $FF, $FF, $FF, $03, $09, $C1, $83, $C8, + $30, $88, $07, $8D, $04, $92, $8D, $14, $92, $83, $F9, $01, $83, $DF, $FF, $C1, + $E8, $19, $81, $E2, $FF, $FF, $FF, $01, $09, $C1, $83, $C8, $30, $88, $07, $8D, + $04, $92, $8D, $14, $92, $83, $F9, $01, $83, $DF, $FF, $C1, $E8, $18, $81, $E2, + $FF, $FF, $FF, $00, $09, $C1, $83, $C8, $30, $88, $07, $8D, $04, $92, $8D, $14, + $92, $83, $F9, $01, $83, $DF, $FF, $C1, $E8, $17, $81, $E2, $FF, $FF, $7F, $00, + $09, $C1, $83, $C8, $30, $88, $07, $8D, $04, $92, $8D, $14, $92, $83, $F9, $01, + $83, $DF, $FF, $C1, $E8, $16, $81, $E2, $FF, $FF, $3F, $00, $09, $C1, $83, $C8, + $30, $88, $07, $8D, $04, $92, $8D, $14, $92, $83, $F9, $01, $83, $DF, $FF, $C1, + $E8, $15, $81, $E2, $FF, $FF, $1F, $00, $09, $C1, $83, $C8, $30, $88, $07, $8D, + $04, $92, $83, $F9, $01, $83, $DF, $FF, $C1, $E8, $14, $83, $C8, $30, $88, $07, + $8D, $47, $01, $5F, $C3, $8D, $40, $00, $53, $56, $8B, $F1, $8B, $DA, $8B, $D3, + $8B, $CE, $E8, $45, $0B, $00, $00, $8B, $C3, $03, $C6, $5E, $5B, $C3, $8B, $C0, + $55, $8B, $EC, $53, $8B, $D0, $81, $FA, $FF, $FF, $00, $00, $76, $68, $F6, $C2, + $03, $75, $63, $8B, $55, $08, $8B, $52, $E4, $8B, $C8, $3B, $D1, $77, $10, $8B, + $5D, $08, $8B, $5D, $08, $03, $53, $F0, $83, $C1, $04, $3B, $D1, $73, $17, $8B, + $55, $08, $33, $C9, $89, $4A, $F0, $6A, $1C, $8B, $55, $08, $83, $C2, $E4, $52, + $50, $E8, $C2, $EE, $FF, $FF, $8B, $45, $08, $83, $78, $F0, $04, $72, $1E, $8B, + $45, $08, $81, $78, $F4, $00, $10, $00, $00, $75, $12, $8B, $45, $08, $F6, $40, + $F8, $F6, $74, $09, $8B, $45, $08, $F6, $40, $F9, $01, $74, $04, $33, $C0, $EB, + $07, $B0, $01, $5B, $5D, $C3, $33, $C0, $5B, $5D, $C3, $90, $55, $8B, $EC, $53, + $56, $57, $8B, $FA, $8B, $D8, $81, $FF, $E8, $03, $00, $00, $7D, $65, $8B, $45, + $08, $50, $8B, $C3, $83, $C0, $B4, $E8, $64, $FF, $FF, $FF, $59, $84, $C0, $74, + $52, $8B, $45, $08, $50, $8B, $C3, $83, $C0, $DC, $E8, $51, $FF, $FF, $FF, $59, + $84, $C0, $74, $3F, $8B, $C3, $83, $C0, $DC, $8B, $30, $8B, $C3, $83, $C0, $B4, + $3B, $18, $75, $27, $85, $F6, $74, $27, $8B, $45, $08, $50, $8B, $C6, $E8, $2D, + $FF, $FF, $FF, $59, $84, $C0, $74, $13, $8B, $45, $08, $50, $8D, $57, $01, $8B, + $06, $E8, $96, $FF, $FF, $FF, $59, $84, $C0, $75, $04, $33, $C0, $EB, $06, $B0, + $01, $EB, $02, $33, $C0, $5F, $5E, $5B, $5D, $C3, $8B, $C0, $55, $8B, $EC, $83, + $C4, $E4, $53, $8B, $18, $33, $C0, $89, $45, $F0, $55, $33, $D2, $8B, $C3, $E8, + $68, $FF, $FF, $FF, $59, $84, $C0, $75, $02, $33, $DB, $8B, $C3, $5B, $8B, $E5, + $5D, $C3, $8B, $C0, $80, $3D, $35, $70, $40, $00, $00, $74, $3D, $EB, $29, $80, + $3D, $9D, $75, $40, $00, $00, $75, $20, $6A, $00, $E8, $0D, $EE, $FF, $FF, $B9, + $A8, $97, $40, $00, $B2, $01, $33, $C0, $E8, $6F, $EE, $FF, $FF, $84, $C0, $74, + $19, $6A, $0A, $E8, $F4, $ED, $FF, $FF, $B9, $A8, $97, $40, $00, $B2, $01, $33, + $C0, $E8, $56, $EE, $FF, $FF, $84, $C0, $75, $C5, $83, $3D, $A4, $97, $40, $00, + $00, $75, $18, $6A, $04, $68, $00, $10, $00, $00, $68, $00, $00, $01, $00, $6A, + $00, $E8, $B6, $ED, $FF, $FF, $A3, $A4, $97, $40, $00, $83, $3D, $A4, $97, $40, + $00, $00, $0F, $95, $C0, $C3, $8B, $C0, $53, $8B, $D8, $E8, $84, $FF, $FF, $FF, + $84, $C0, $74, $29, $A1, $A4, $97, $40, $00, $81, $38, $FE, $3F, $00, $00, $7D, + $1C, $A1, $A4, $97, $40, $00, $8B, $00, $8B, $15, $A4, $97, $40, $00, $89, $5C, + $82, $04, $A1, $A4, $97, $40, $00, $FF, $00, $B0, $01, $EB, $02, $33, $C0, $C6, + $05, $A8, $97, $40, $00, $00, $5B, $C3, $53, $56, $57, $8B, $F0, $BF, $A4, $97, + $40, $00, $33, $DB, $83, $3F, $00, $74, $3F, $E8, $36, $FF, $FF, $FF, $84, $C0, + $74, $36, $8B, $07, $8B, $10, $4A, $85, $D2, $7C, $26, $42, $33, $C0, $8B, $0F, + $3B, $74, $81, $04, $75, $17, $8B, $17, $8B, $12, $8B, $0F, $8B, $14, $91, $8B, + $0F, $89, $54, $81, $04, $8B, $17, $FF, $0A, $B3, $01, $EB, $04, $40, $4A, $75, + $DD, $C6, $05, $A8, $97, $40, $00, $00, $8B, $C3, $5F, $5E, $5B, $C3, $8B, $C0, + $55, $8B, $EC, $83, $C4, $E0, $53, $56, $57, $89, $45, $FC, $8B, $45, $FC, $8B, + $00, $81, $E8, $28, $60, $40, $00, $C1, $E8, $05, $C1, $E0, $08, $8B, $55, $08, + $8D, $B4, $C2, $00, $48, $FE, $FF, $8D, $4D, $E4, $8D, $55, $E8, $8B, $45, $FC, + $E8, $2B, $FC, $FF, $FF, $E9, $FD, $00, $00, $00, $8B, $45, $E8, $83, $E8, $04, + $F6, $00, $01, $0F, $85, $E2, $00, $00, $00, $8B, $45, $E8, $E8, $57, $FF, $FF, + $FF, $84, $C0, $0F, $85, $D2, $00, $00, $00, $8B, $45, $08, $C6, $80, $FF, $47, + $FE, $FF, $00, $33, $DB, $8B, $45, $E8, $E8, $5F, $FE, $FF, $FF, $8B, $F8, $85, + $FF, $0F, $85, $88, $00, $00, $00, $8B, $45, $E8, $81, $38, $00, $01, $00, $00, + $0F, $83, $A1, $00, $00, $00, $8B, $45, $E8, $83, $C0, $04, $8B, $00, $89, $45, + $F4, $83, $7D, $F4, $00, $0F, $8E, $8C, $00, $00, $00, $8B, $45, $FC, $8B, $00, + $0F, $B7, $40, $02, $83, $E8, $0D, $3B, $45, $F4, $7C, $7B, $8B, $45, $E8, $83, + $C0, $08, $89, $45, $F0, $C6, $45, $EF, $01, $8B, $45, $F4, $85, $C0, $7E, $2A, + $89, $45, $E0, $80, $7D, $EF, $00, $74, $10, $8B, $45, $F0, $80, $38, $20, $72, + $08, $8B, $45, $F0, $80, $38, $80, $72, $04, $33, $C0, $EB, $02, $B0, $01, $88, + $45, $EF, $FF, $45, $F0, $FF, $4D, $E0, $75, $D9, $80, $7D, $EF, $00, $74, $37, + $8B, $45, $F0, $80, $38, $00, $75, $2F, $BB, $01, $00, $00, $00, $EB, $28, $BB, + $02, $00, $00, $00, $3B, $3C, $DE, $74, $0F, $83, $3C, $DE, $00, $74, $09, $43, + $81, $FB, $FF, $00, $00, $00, $7E, $EC, $81, $FB, $FF, $00, $00, $00, $7F, $05, + $89, $3C, $DE, $EB, $02, $33, $DB, $FF, $44, $DE, $04, $8B, $45, $FC, $8B, $00, + $0F, $B7, $40, $02, $01, $45, $E8, $8B, $45, $E8, $3B, $45, $E4, $0F, $86, $F7, + $FE, $FF, $FF, $5F, $5E, $5B, $8B, $E5, $5D, $C3, $8B, $C0, $55, $8B, $EC, $50, + $B8, $27, $00, $00, $00, $81, $C4, $04, $F0, $FF, $FF, $50, $48, $75, $F6, $8B, + $45, $FC, $81, $C4, $DC, $F6, $FF, $FF, $53, $56, $57, $8D, $85, $00, $48, $FE, + $FF, $33, $C9, $BA, $00, $B8, $01, $00, $E8, $E7, $08, $00, $00, $8D, $85, $D8, + $07, $FE, $FF, $33, $C9, $BA, $00, $40, $00, $00, $E8, $D5, $08, $00, $00, $33, + $C0, $89, $85, $F8, $47, $FE, $FF, $C6, $85, $FF, $47, $FE, $FF, $01, $8B, $3D, + $F4, $76, $40, $00, $E9, $82, $00, $00, $00, $8B, $C7, $E8, $70, $FA, $FF, $FF, + $8B, $D8, $85, $DB, $74, $72, $8B, $C3, $83, $E8, $04, $8B, $30, $F7, $C6, $01, + $00, $00, $00, $75, $56, $F7, $C6, $04, $00, $00, $00, $74, $0B, $55, $8B, $C3, + $E8, $2B, $FE, $FF, $FF, $59, $EB, $43, $81, $BD, $F8, $47, $FE, $FF, $00, $10, + $00, $00, $7D, $37, $83, $E6, $F0, $83, $EE, $04, $89, $B5, $EC, $47, $FE, $FF, + $8B, $C3, $E8, $B1, $FD, $FF, $FF, $84, $C0, $75, $20, $C6, $85, $FF, $47, $FE, + $FF, $00, $8B, $85, $F8, $47, $FE, $FF, $8B, $95, $EC, $47, $FE, $FF, $89, $94, + $85, $D8, $07, $FE, $FF, $FF, $85, $F8, $47, $FE, $FF, $8B, $C3, $E8, $DA, $F9, + $FF, $FF, $8B, $D8, $85, $DB, $75, $8E, $8B, $7F, $04, $81, $FF, $F0, $76, $40, + $00, $0F, $85, $72, $FF, $FF, $FF, $8B, $1D, $98, $97, $40, $00, $EB, $37, $8B, + $C3, $83, $C0, $10, $E8, $5F, $FD, $FF, $FF, $84, $C0, $75, $26, $C6, $85, $FF, + $47, $FE, $FF, $00, $8B, $73, $0C, $83, $E6, $F0, $83, $EE, $04, $83, $EE, $10, + $8B, $85, $F8, $47, $FE, $FF, $89, $B4, $85, $D8, $07, $FE, $FF, $FF, $85, $F8, + $47, $FE, $FF, $8B, $5B, $04, $81, $FB, $94, $97, $40, $00, $74, $0C, $81, $BD, + $F8, $47, $FE, $FF, $00, $10, $00, $00, $7C, $B5, $80, $BD, $FF, $47, $FE, $FF, + $00, $0F, $85, $58, $02, $00, $00, $C6, $85, $F7, $47, $FE, $FF, $00, $33, $C0, + $89, $85, $E8, $47, $FE, $FF, $8D, $95, $D8, $87, $FD, $FF, $B8, $88, $28, $40, + $00, $B9, $28, $00, $00, $00, $E8, $FD, $FA, $FF, $FF, $8B, $D8, $C7, $85, $F0, + $47, $FE, $FF, $37, $00, $00, $00, $C7, $85, $DC, $47, $FE, $FF, $2A, $60, $40, + $00, $8D, $85, $FC, $4F, $FE, $FF, $89, $85, $D8, $47, $FE, $FF, $8B, $85, $DC, + $47, $FE, $FF, $0F, $B7, $00, $83, $E8, $04, $89, $85, $E4, $47, $FE, $FF, $C6, + $85, $F6, $47, $FE, $FF, $00, $BF, $FF, $00, $00, $00, $8B, $85, $D8, $47, $FE, + $FF, $8B, $F0, $8D, $85, $D7, $FF, $FD, $FF, $3B, $D8, $0F, $87, $09, $01, $00, + $00, $83, $3E, $00, $0F, $86, $F3, $00, $00, $00, $80, $BD, $F7, $47, $FE, $FF, + $00, $75, $1A, $B8, $B4, $28, $40, $00, $B9, $27, $00, $00, $00, $8B, $D3, $E8, + $84, $FA, $FF, $FF, $8B, $D8, $C6, $85, $F7, $47, $FE, $FF, $01, $80, $BD, $F6, + $47, $FE, $FF, $00, $75, $4F, $C6, $03, $0D, $43, $C6, $03, $0A, $43, $8B, $85, + $E8, $47, $FE, $FF, $40, $8B, $D3, $E8, $40, $F9, $FF, $FF, $8B, $D8, $C6, $03, + $20, $43, $C6, $03, $2D, $43, $C6, $03, $20, $43, $8B, $D3, $8B, $85, $E4, $47, + $FE, $FF, $E8, $25, $F9, $FF, $FF, $8B, $D8, $B8, $DC, $28, $40, $00, $B9, $08, + $00, $00, $00, $8B, $D3, $E8, $2E, $FA, $FF, $FF, $8B, $D8, $C6, $85, $F6, $47, + $FE, $FF, $01, $EB, $08, $C6, $03, $2C, $43, $C6, $03, $20, $43, $8B, $C7, $83, + $E8, $01, $72, $04, $74, $17, $EB, $2A, $B8, $E8, $28, $40, $00, $B9, $07, $00, + $00, $00, $8B, $D3, $E8, $FF, $F9, $FF, $FF, $8B, $D8, $EB, $39, $B8, $F0, $28, + $40, $00, $B9, $06, $00, $00, $00, $8B, $D3, $E8, $EA, $F9, $FF, $FF, $8B, $D8, + $EB, $24, $8D, $95, $D8, $86, $FD, $FF, $8B, $46, $FC, $E8, $30, $08, $00, $00, + $0F, $B6, $8D, $D8, $86, $FD, $FF, $8D, $85, $D9, $86, $FD, $FF, $8B, $D3, $E8, + $C4, $F9, $FF, $FF, $8B, $D8, $C6, $03, $20, $43, $C6, $03, $78, $43, $C6, $03, + $20, $43, $8B, $06, $8B, $D3, $E8, $91, $F8, $FF, $FF, $8B, $D8, $4F, $83, $EE, + $08, $83, $FF, $FF, $0F, $85, $E9, $FE, $FF, $FF, $8B, $85, $E4, $47, $FE, $FF, + $89, $85, $E8, $47, $FE, $FF, $81, $85, $D8, $47, $FE, $FF, $00, $08, $00, $00, + $83, $85, $DC, $47, $FE, $FF, $20, $FF, $8D, $F0, $47, $FE, $FF, $0F, $85, $9A, + $FE, $FF, $FF, $83, $BD, $F8, $47, $FE, $FF, $00, $7E, $7A, $80, $BD, $F7, $47, + $FE, $FF, $00, $74, $10, $C6, $03, $0D, $43, $C6, $03, $0A, $43, $C6, $03, $0D, + $43, $C6, $03, $0A, $43, $B8, $F8, $28, $40, $00, $B9, $3C, $00, $00, $00, $8B, + $D3, $E8, $42, $F9, $FF, $FF, $8B, $D8, $8B, $BD, $F8, $47, $FE, $FF, $4F, $85, + $FF, $72, $43, $47, $C7, $85, $E0, $47, $FE, $FF, $00, $00, $00, $00, $8D, $B5, + $D8, $07, $FE, $FF, $83, $BD, $E0, $47, $FE, $FF, $00, $74, $08, $C6, $03, $2C, + $43, $C6, $03, $20, $43, $8B, $06, $8B, $D3, $E8, $EE, $F7, $FF, $FF, $8B, $D8, + $8D, $85, $D7, $FF, $FD, $FF, $3B, $D8, $77, $0C, $FF, $85, $E0, $47, $FE, $FF, + $83, $C6, $04, $4F, $75, $CE, $B8, $38, $29, $40, $00, $B9, $03, $00, $00, $00, + $8B, $D3, $E8, $E1, $F8, $FF, $FF, $68, $10, $20, $00, $00, $68, $3C, $29, $40, + $00, $8D, $85, $D8, $87, $FD, $FF, $50, $6A, $00, $E8, $B1, $E7, $FF, $FF, $5F, + $5E, $5B, $8B, $E5, $5D, $C3, $00, $00, $41, $6E, $20, $75, $6E, $65, $78, $70, + $65, $63, $74, $65, $64, $20, $6D, $65, $6D, $6F, $72, $79, $20, $6C, $65, $61, + $6B, $20, $68, $61, $73, $20, $6F, $63, $63, $75, $72, $72, $65, $64, $2E, $20, + $00, $00, $00, $00, $54, $68, $65, $20, $75, $6E, $65, $78, $70, $65, $63, $74, + $65, $64, $20, $73, $6D, $61, $6C, $6C, $20, $62, $6C, $6F, $63, $6B, $20, $6C, + $65, $61, $6B, $73, $20, $61, $72, $65, $3A, $0D, $0A, $00, $20, $62, $79, $74, + $65, $73, $3A, $20, $00, $00, $00, $00, $55, $6E, $6B, $6E, $6F, $77, $6E, $00, + $53, $74, $72, $69, $6E, $67, $00, $00, $54, $68, $65, $20, $73, $69, $7A, $65, + $73, $20, $6F, $66, $20, $75, $6E, $65, $78, $70, $65, $63, $74, $65, $64, $20, + $6C, $65, $61, $6B, $65, $64, $20, $6D, $65, $64, $69, $75, $6D, $20, $61, $6E, + $64, $20, $6C, $61, $72, $67, $65, $20, $62, $6C, $6F, $63, $6B, $73, $20, $61, + $72, $65, $3A, $20, $00, $00, $00, $00, $0D, $0A, $00, $00, $55, $6E, $65, $78, + $70, $65, $63, $74, $65, $64, $20, $4D, $65, $6D, $6F, $72, $79, $20, $4C, $65, + $61, $6B, $00, $00, $56, $57, $33, $C0, $33, $F6, $BA, $2A, $60, $40, $00, $80, + $3D, $EE, $76, $40, $00, $00, $74, $05, $F6, $02, $0F, $75, $1D, $0F, $B7, $3A, + $C1, $EF, $03, $8B, $CE, $03, $C9, $03, $C9, $3B, $F8, $76, $0B, $88, $88, $A8, + $75, $40, $00, $40, $3B, $F8, $77, $F5, $8B, $C7, $46, $83, $C2, $20, $83, $FE, + $37, $75, $CC, $5F, $5E, $C3, $8B, $C0, $53, $56, $57, $BE, $37, $00, $00, $00, + $BB, $44, $60, $40, $00, $83, $3B, $00, $75, $06, $C7, $03, $5C, $12, $40, $00, + $8D, $43, $E4, $89, $43, $F8, $8D, $43, $E4, $89, $43, $E8, $33, $C0, $89, $43, + $F0, $C7, $43, $EC, $01, $00, $00, $00, $0F, $B7, $43, $E6, $03, $C0, $03, $C0, + $8D, $04, $40, $05, $EF, $00, $00, $00, $25, $00, $FF, $FF, $FF, $83, $C0, $30, + $3D, $30, $0B, $00, $00, $73, $05, $B8, $30, $0B, $00, $00, $05, $D0, $04, $00, + $00, $C1, $E8, $0D, $83, $F8, $07, $76, $05, $B8, $07, $00, $00, $00, $8B, $C8, + $B2, $FF, $D2, $E2, $88, $53, $E5, $C1, $E0, $0D, $66, $05, $30, $0B, $66, $89, + $43, $FC, $0F, $B7, $7B, $E6, $0F, $B7, $C7, $8B, $C8, $C1, $E1, $04, $8D, $0C, + $49, $81, $C1, $EF, $00, $00, $00, $81, $E1, $00, $FF, $FF, $FF, $83, $C1, $30, + $81, $F9, $30, $73, $00, $00, $73, $05, $B9, $30, $73, $00, $00, $81, $F9, $30, + $FF, $00, $00, $76, $05, $B9, $30, $FF, $00, $00, $8B, $C1, $83, $E8, $20, $0F, + $B7, $D7, $8B, $CA, $33, $D2, $F7, $F1, $66, $F7, $EF, $66, $05, $EF, $00, $66, + $25, $00, $FF, $66, $83, $C0, $30, $66, $89, $43, $FE, $83, $C3, $20, $4E, $0F, + $85, $30, $FF, $FF, $FF, $E8, $DA, $FE, $FF, $FF, $C7, $05, $F0, $76, $40, $00, + $F0, $76, $40, $00, $C7, $05, $F4, $76, $40, $00, $F0, $76, $40, $00, $BE, $00, + $04, $00, $00, $BA, $90, $77, $40, $00, $8B, $C2, $89, $00, $89, $40, $04, $83, + $C2, $08, $4E, $75, $F3, $C7, $05, $94, $97, $40, $00, $94, $97, $40, $00, $C7, + $05, $98, $97, $40, $00, $94, $97, $40, $00, $5F, $5E, $5B, $C3, $8D, $40, $00, + $53, $56, $57, $55, $BB, $F0, $76, $40, $00, $BE, $94, $97, $40, $00, $8B, $7B, + $04, $EB, $12, $8B, $6F, $04, $68, $00, $80, $00, $00, $6A, $00, $57, $E8, $C1, + $E5, $FF, $FF, $8B, $FD, $3B, $FB, $75, $EA, $BA, $37, $00, $00, $00, $B8, $28, + $60, $40, $00, $8B, $C8, $89, $48, $14, $8B, $C8, $89, $48, $04, $C7, $40, $08, + $01, $00, $00, $00, $33, $C9, $89, $48, $0C, $83, $C0, $20, $4A, $75, $E4, $89, + $1B, $89, $5B, $04, $BA, $00, $04, $00, $00, $B9, $90, $77, $40, $00, $8B, $C1, + $89, $00, $89, $40, $04, $83, $C1, $08, $4A, $75, $F3, $8B, $5E, $04, $EB, $12, + $8B, $7B, $04, $68, $00, $80, $00, $00, $6A, $00, $53, $E8, $64, $E5, $FF, $FF, + $8B, $DF, $3B, $DE, $75, $EA, $89, $36, $89, $76, $04, $5D, $5F, $5E, $5B, $C3, + $83, $3D, $AC, $97, $40, $00, $00, $74, $12, $A1, $AC, $97, $40, $00, $50, $E8, + $50, $E5, $FF, $FF, $33, $C0, $A3, $AC, $97, $40, $00, $80, $3D, $9C, $75, $40, + $00, $00, $74, $05, $E8, $63, $F9, $FF, $FF, $83, $3D, $A4, $97, $40, $00, $00, + $74, $19, $68, $00, $80, $00, $00, $6A, $00, $A1, $A4, $97, $40, $00, $50, $E8, + $10, $E5, $FF, $FF, $33, $C0, $A3, $A4, $97, $40, $00, $E8, $20, $FF, $FF, $FF, + $C3, $8D, $40, $00, $85, $C0, $7E, $13, $FF, $15, $08, $67, $40, $00, $85, $C0, + $74, $02, $F3, $C3, $B0, $01, $E9, $C5, $00, $00, $00, $31, $C0, $F3, $C3, $90, + $85, $C0, $74, $0A, $FF, $15, $0C, $67, $40, $00, $85, $C0, $75, $02, $F3, $C3, + $B0, $02, $E9, $A9, $00, $00, $00, $C3, $8B, $08, $85, $C9, $74, $32, $85, $D2, + $74, $18, $50, $89, $C8, $FF, $15, $10, $67, $40, $00, $59, $09, $C0, $74, $19, + $89, $01, $C3, $B0, $02, $E9, $86, $00, $00, $00, $89, $10, $89, $C8, $FF, $15, + $0C, $67, $40, $00, $09, $C0, $75, $EB, $C3, $B0, $01, $E9, $70, $00, $00, $00, + $85, $D2, $74, $10, $50, $89, $D0, $FF, $15, $08, $67, $40, $00, $59, $09, $C0, + $74, $E7, $89, $01, $C3, $8D, $40, $00, $89, $15, $04, $60, $40, $00, $E8, $25, + $0C, $00, $00, $C3, $53, $56, $8B, $F2, $8B, $D8, $80, $E3, $7F, $83, $3D, $08, + $70, $40, $00, $00, $74, $0A, $8B, $D6, $8B, $C3, $FF, $15, $08, $70, $40, $00, + $84, $DB, $75, $0D, $E8, $17, $12, $00, $00, $8B, $98, $04, $00, $00, $00, $EB, + $0F, $80, $FB, $18, $77, $0A, $0F, $B6, $C3, $0F, $B6, $98, $20, $67, $40, $00, + $0F, $B6, $C3, $8B, $D6, $E8, $AE, $FF, $FF, $FF, $5E, $5B, $C3, $8D, $40, $00, + $83, $E0, $7F, $8B, $14, $24, $E9, $A9, $FF, $FF, $FF, $C3, $53, $8B, $D8, $E8, + $DC, $11, $00, $00, $89, $98, $04, $00, $00, $00, $5B, $C3, $39, $D0, $74, $31, + $83, $F9, $20, $77, $7C, $83, $E9, $08, $7F, $07, $FF, $24, $8D, $F4, $2C, $40, + $00, $DF, $2C, $01, $DF, $28, $83, $F9, $08, $7E, $11, $DF, $68, $08, $83, $F9, + $10, $7E, $06, $DF, $68, $10, $DF, $7A, $10, $DF, $7A, $08, $DF, $3A, $DF, $3C, + $11, $C3, $90, $90, $D1, $2C, $40, $00, $52, $2D, $40, $00, $58, $2D, $40, $00, + $5F, $2D, $40, $00, $6C, $2D, $40, $00, $71, $2D, $40, $00, $7C, $2D, $40, $00, + $89, $2D, $40, $00, $94, $2D, $40, $00, $52, $DF, $28, $8D, $44, $01, $F8, $8D, + $4C, $0A, $F8, $DF, $28, $51, $F7, $D9, $83, $E2, $F8, $8D, $4C, $0A, $08, $5A, + $DF, $2C, $01, $DF, $3C, $11, $83, $C1, $08, $7C, $F5, $DF, $3A, $5A, $DF, $3A, + $C3, $7E, $2E, $39, $D0, $77, $D1, $29, $CA, $39, $D0, $8D, $14, $11, $76, $C8, + $83, $E9, $08, $51, $DF, $2C, $01, $DF, $28, $01, $D1, $83, $E1, $F8, $29, $D1, + $DF, $2C, $01, $DF, $3C, $11, $83, $E9, $08, $7F, $F5, $59, $DF, $3A, $DF, $3C, + $11, $C3, $0F, $B6, $08, $88, $0A, $C3, $0F, $B7, $08, $66, $89, $0A, $C3, $66, + $8B, $08, $8A, $40, $02, $66, $89, $0A, $88, $42, $02, $C3, $8B, $08, $89, $0A, + $C3, $8B, $08, $8A, $40, $04, $89, $0A, $88, $42, $04, $C3, $8B, $08, $66, $8B, + $40, $04, $89, $0A, $66, $89, $42, $04, $C3, $8B, $08, $8B, $40, $03, $89, $0A, + $89, $42, $03, $C3, $DF, $28, $DF, $3A, $C3, $8D, $40, $00, $53, $56, $8B, $D8, + $33, $F6, $0F, $B7, $43, $04, $66, $3D, $B1, $D7, $72, $2F, $66, $3D, $B3, $D7, + $77, $29, $66, $25, $B2, $D7, $66, $3D, $B2, $D7, $75, $07, $8B, $C3, $FF, $53, + $1C, $8B, $F0, $85, $F6, $75, $07, $8B, $C3, $FF, $53, $24, $8B, $F0, $85, $F6, + $74, $1B, $8B, $C6, $E8, $B3, $FE, $FF, $FF, $EB, $12, $81, $FB, $38, $70, $40, + $00, $74, $0A, $B8, $67, $00, $00, $00, $E8, $9F, $FE, $FF, $FF, $8B, $C6, $5E, + $5B, $C3, $8B, $C0, $83, $FA, $20, $88, $CD, $7C, $3D, $66, $89, $08, $66, $89, + $48, $02, $66, $89, $48, $04, $66, $89, $48, $06, $83, $EA, $10, $DD, $00, $DD, + $14, $02, $DD, $54, $02, $08, $89, $C1, $83, $E1, $07, $83, $E9, $08, $29, $C8, + $01, $CA, $01, $D0, $F7, $DA, $DD, $14, $02, $DD, $54, $02, $08, $83, $C2, $10, + $7C, $F4, $DD, $C0, $C3, $90, $90, $90, $85, $D2, $7E, $50, $88, $4C, $02, $FF, + $83, $E2, $FE, $F7, $DA, $8D, $14, $55, $8C, $2E, $40, $00, $FF, $E2, $90, $90, + $66, $89, $48, $1C, $66, $89, $48, $1A, $66, $89, $48, $18, $66, $89, $48, $16, + $66, $89, $48, $14, $66, $89, $48, $12, $66, $89, $48, $10, $66, $89, $48, $0E, + $66, $89, $48, $0C, $66, $89, $48, $0A, $66, $89, $48, $08, $66, $89, $48, $06, + $66, $89, $48, $04, $66, $89, $48, $02, $66, $89, $08, $C3, $C3, $8D, $40, $00, + $FF, $25, $54, $A1, $40, $00, $8B, $C0, $53, $33, $DB, $6A, $00, $E8, $EE, $FF, + $FF, $FF, $83, $F8, $07, $75, $1C, $6A, $01, $E8, $E2, $FF, $FF, $FF, $25, $00, + $FF, $00, $00, $3D, $00, $0D, $00, $00, $74, $07, $3D, $00, $04, $00, $00, $75, + $02, $B3, $01, $8B, $C3, $5B, $C3, $90, $55, $8B, $EC, $83, $C4, $F4, $0F, $B7, + $05, $0C, $60, $40, $00, $89, $45, $F8, $8D, $45, $FC, $50, $6A, $01, $6A, $00, + $68, $60, $2F, $40, $00, $68, $02, $00, $00, $80, $E8, $69, $E1, $FF, $FF, $85, + $C0, $75, $4D, $33, $C0, $55, $68, $39, $2F, $40, $00, $64, $FF, $30, $64, $89, + $20, $C7, $45, $F4, $04, $00, $00, $00, $8D, $45, $F4, $50, $8D, $45, $F8, $50, + $6A, $00, $6A, $00, $68, $7C, $2F, $40, $00, $8B, $45, $FC, $50, $E8, $3E, $E1, + $FF, $FF, $33, $C0, $5A, $59, $59, $64, $89, $10, $68, $40, $2F, $40, $00, $8B, + $45, $FC, $50, $E8, $18, $E1, $FF, $FF, $C3, $E9, $9E, $02, $00, $00, $EB, $EF, + $0F, $B7, $05, $0C, $60, $40, $00, $66, $25, $C0, $FF, $0F, $B7, $55, $F8, $66, + $83, $E2, $3F, $66, $0B, $C2, $66, $A3, $0C, $60, $40, $00, $8B, $E5, $5D, $C3, + $53, $4F, $46, $54, $57, $41, $52, $45, $5C, $42, $6F, $72, $6C, $61, $6E, $64, + $5C, $44, $65, $6C, $70, $68, $69, $5C, $52, $54, $4C, $00, $46, $50, $55, $4D, + $61, $73, $6B, $56, $61, $6C, $75, $65, $00, $00, $00, $00, $DB, $E3, $9B, $D9, + $2D, $0C, $60, $40, $00, $C3, $8B, $C0, $B0, $05, $E9, $E1, $FC, $FF, $FF, $C3, + $56, $57, $89, $D7, $8B, $70, $D4, $31, $C9, $8A, $0E, $41, $F3, $A4, $5F, $5E, + $C3, $8D, $40, $00, $85, $C0, $74, $07, $B2, $01, $8B, $08, $FF, $51, $FC, $C3, + $80, $3D, $10, $60, $40, $00, $01, $76, $11, $6A, $00, $6A, $00, $6A, $00, $68, + $DF, $FA, $ED, $0E, $FF, $15, $10, $70, $40, $00, $C3, $90, $80, $3D, $10, $60, + $40, $00, $00, $74, $17, $50, $50, $52, $54, $6A, $02, $6A, $00, $68, $E4, $FA, + $ED, $0E, $FF, $15, $10, $70, $40, $00, $83, $C4, $08, $58, $C3, $8D, $40, $00, + $54, $6A, $01, $6A, $00, $68, $E0, $FA, $ED, $0E, $FF, $15, $10, $70, $40, $00, + $83, $C4, $04, $58, $C3, $8D, $40, $00, $80, $3D, $10, $60, $40, $00, $01, $76, + $07, $50, $53, $E9, $D8, $FF, $FF, $FF, $C3, $8D, $40, $00, $85, $C9, $74, $19, + $8B, $41, $01, $80, $39, $E9, $74, $0C, $80, $39, $EB, $75, $0C, $0F, $BE, $C0, + $41, $41, $EB, $03, $83, $C1, $05, $01, $C1, $C3, $8B, $C0, $80, $3D, $10, $60, + $40, $00, $01, $76, $1D, $50, $52, $51, $E8, $CF, $FF, $FF, $FF, $51, $54, $6A, + $01, $6A, $00, $68, $E1, $FA, $ED, $0E, $FF, $15, $10, $70, $40, $00, $59, $59, + $5A, $58, $C3, $90, $80, $3D, $10, $60, $40, $00, $01, $76, $12, $52, $54, $6A, + $01, $6A, $00, $68, $E2, $FA, $ED, $0E, $FF, $15, $10, $70, $40, $00, $5A, $C3, + $50, $52, $80, $3D, $10, $60, $40, $00, $01, $76, $10, $54, $6A, $02, $6A, $00, + $68, $E3, $FA, $ED, $0E, $FF, $15, $10, $70, $40, $00, $5A, $58, $C3, $8B, $C0, + $8B, $44, $24, $04, $F7, $40, $04, $06, $00, $00, $00, $0F, $85, $13, $01, $00, + $00, $81, $38, $DE, $FA, $ED, $0E, $8B, $50, $18, $8B, $48, $14, $74, $6E, $FC, + $E8, $B7, $FE, $FF, $FF, $8B, $15, $0C, $70, $40, $00, $85, $D2, $0F, $84, $F1, + $00, $00, $00, $FF, $D2, $85, $C0, $0F, $84, $E7, $00, $00, $00, $8B, $54, $24, + $0C, $8B, $4C, $24, $04, $81, $39, $CE, $FA, $EF, $0E, $74, $37, $E8, $DA, $FE, + $FF, $FF, $80, $3D, $14, $60, $40, $00, $00, $76, $29, $80, $3D, $10, $60, $40, + $00, $00, $77, $20, $8D, $4C, $24, $04, $50, $51, $E8, $F9, $DE, $FF, $FF, $83, + $F8, $00, $58, $0F, $84, $AB, $00, $00, $00, $89, $C2, $8B, $44, $24, $04, $8B, + $48, $0C, $EB, $30, $89, $C2, $8B, $44, $24, $04, $8B, $48, $0C, $80, $3D, $14, + $60, $40, $00, $01, $76, $1E, $80, $3D, $10, $60, $40, $00, $00, $77, $15, $50, + $8D, $44, $24, $08, $52, $51, $50, $E8, $BC, $DE, $FF, $FF, $83, $F8, $00, $59, + $5A, $58, $74, $70, $83, $48, $04, $02, $53, $31, $DB, $56, $57, $55, $64, $8B, + $1B, $53, $50, $52, $51, $8B, $54, $24, $28, $6A, $00, $50, $68, $88, $31, $40, + $00, $52, $FF, $15, $14, $70, $40, $00, $8B, $7C, $24, $28, $E8, $DF, $0C, $00, + $00, $FF, $B0, $00, $00, $00, $00, $89, $A0, $00, $00, $00, $00, $8B, $6F, $08, + $8B, $5F, $04, $C7, $47, $04, $B4, $31, $40, $00, $83, $C3, $05, $E8, $66, $FE, + $FF, $FF, $FF, $E3, $E9, $CB, $00, $00, $00, $E8, $B2, $0C, $00, $00, $8B, $88, + $00, $00, $00, $00, $8B, $11, $89, $90, $00, $00, $00, $00, $8B, $41, $08, $E9, + $E0, $FD, $FF, $FF, $B8, $01, $00, $00, $00, $C3, $8B, $C0, $8B, $44, $24, $04, + $F7, $40, $04, $06, $00, $00, $00, $0F, $84, $8F, $00, $00, $00, $53, $31, $DB, + $56, $57, $55, $55, $68, $5C, $32, $40, $00, $64, $FF, $33, $64, $89, $23, $64, + $8B, $1B, $8B, $50, $18, $8B, $48, $14, $53, $50, $52, $51, $8B, $7C, $24, $34, + $E8, $5B, $0C, $00, $00, $FF, $B0, $00, $00, $00, $00, $89, $A0, $00, $00, $00, + $00, $8B, $4F, $04, $8B, $6F, $08, $C7, $47, $04, $5C, $32, $40, $00, $83, $C1, + $05, $E8, $16, $FE, $FF, $FF, $FF, $D1, $E8, $33, $0C, $00, $00, $8B, $88, $00, + $00, $00, $00, $8B, $11, $89, $90, $00, $00, $00, $00, $83, $C4, $14, $31, $C0, + $5A, $59, $59, $64, $89, $10, $5D, $5F, $5E, $5B, $EB, $20, $E9, $23, $00, $00, + $00, $E8, $0A, $0C, $00, $00, $8B, $88, $00, $00, $00, $00, $8B, $11, $89, $90, + $00, $00, $00, $00, $8B, $41, $08, $E9, $38, $FD, $FF, $FF, $B8, $01, $00, $00, + $00, $C3, $8B, $C0, $8B, $44, $24, $04, $8B, $54, $24, $08, $F7, $40, $04, $06, + $00, $00, $00, $74, $1F, $8B, $4A, $04, $C7, $42, $04, $B4, $32, $40, $00, $53, + $56, $57, $55, $8B, $6A, $08, $83, $C1, $05, $E8, $9E, $FD, $FF, $FF, $FF, $D1, + $5D, $5F, $5E, $5B, $B8, $01, $00, $00, $00, $C3, $8B, $C0, $8B, $44, $24, $30, + $C7, $40, $04, $07, $33, $40, $00, $E8, $A4, $0B, $00, $00, $8B, $90, $00, $00, + $00, $00, $8B, $0A, $89, $88, $00, $00, $00, $00, $8B, $42, $0C, $83, $60, $04, + $FD, $81, $38, $DE, $FA, $ED, $0E, $74, $0D, $8B, $42, $08, $E8, $C3, $FC, $FF, + $FF, $E8, $CA, $FC, $FF, $FF, $31, $C0, $83, $C4, $14, $64, $8B, $10, $59, $8B, + $12, $89, $11, $5D, $5F, $5E, $5B, $B8, $01, $00, $00, $00, $C3, $8D, $40, $00, + $E8, $5B, $0B, $00, $00, $8B, $90, $00, $00, $00, $00, $8B, $0A, $89, $88, $00, + $00, $00, $00, $8B, $42, $08, $E8, $89, $FC, $FF, $FF, $5A, $8B, $64, $24, $2C, + $31, $C0, $59, $64, $89, $08, $58, $5D, $E8, $37, $FD, $FF, $FF, $FF, $E2, $C3, + $55, $8B, $EC, $8B, $55, $08, $8B, $02, $3D, $92, $00, $00, $C0, $7F, $2C, $74, + $5C, $3D, $8E, $00, $00, $C0, $7F, $15, $74, $57, $2D, $05, $00, $00, $C0, $74, + $5C, $2D, $87, $00, $00, $00, $74, $3D, $48, $74, $4E, $EB, $60, $05, $71, $FF, + $FF, $3F, $83, $E8, $02, $72, $36, $74, $30, $EB, $52, $3D, $96, $00, $00, $C0, + $7F, $11, $74, $3D, $2D, $93, $00, $00, $C0, $74, $2E, $48, $74, $13, $48, $74, + $24, $EB, $3A, $2D, $FD, $00, $00, $C0, $74, $2F, $83, $E8, $3D, $74, $26, $EB, + $2C, $B0, $C8, $EB, $2A, $B0, $C9, $EB, $26, $B0, $CD, $EB, $22, $B0, $CF, $EB, + $1E, $B0, $C8, $EB, $1A, $B0, $D7, $EB, $16, $B0, $CE, $EB, $12, $B0, $D8, $EB, + $0E, $B0, $DA, $EB, $0A, $B0, $D9, $EB, $06, $B0, $CA, $EB, $02, $B0, $FF, $0F, + $B6, $C0, $8B, $52, $0C, $E8, $4E, $F8, $FF, $FF, $5D, $C2, $04, $00, $8B, $C0, + $8B, $44, $24, $04, $F7, $40, $04, $06, $00, $00, $00, $0F, $85, $89, $00, $00, + $00, $80, $3D, $10, $60, $40, $00, $00, $77, $0F, $8D, $44, $24, $04, $50, $E8, + $14, $DC, $FF, $FF, $83, $F8, $00, $74, $71, $8B, $44, $24, $04, $FC, $E8, $79, + $FB, $FF, $FF, $8B, $54, $24, $08, $6A, $00, $50, $68, $26, $34, $40, $00, $52, + $FF, $15, $14, $70, $40, $00, $8B, $5C, $24, $04, $81, $3B, $DE, $FA, $ED, $0E, + $8B, $53, $14, $8B, $43, $18, $74, $1D, $8B, $15, $0C, $70, $40, $00, $85, $D2, + $0F, $84, $FA, $FE, $FF, $FF, $89, $D8, $FF, $D2, $85, $C0, $0F, $84, $EE, $FE, + $FF, $FF, $8B, $53, $0C, $E8, $36, $FC, $FF, $FF, $8B, $0D, $04, $70, $40, $00, + $85, $C9, $74, $02, $FF, $D1, $8B, $4C, $24, $04, $B8, $D9, $00, $00, $00, $8B, + $51, $14, $89, $14, $24, $E9, $EA, $03, $00, $00, $31, $C0, $C3, $8D, $40, $00, + $31, $D2, $8D, $45, $F4, $64, $8B, $0A, $64, $89, $02, $89, $08, $C7, $40, $04, + $E0, $33, $40, $00, $89, $68, $08, $A3, $B4, $97, $40, $00, $C3, $8D, $40, $00, + $31, $D2, $A1, $B4, $97, $40, $00, $85, $C0, $74, $1C, $64, $8B, $0A, $39, $C8, + $75, $08, $8B, $00, $64, $89, $02, $C3, $8B, $09, $83, $F9, $FF, $74, $08, $39, + $01, $75, $F5, $8B, $00, $89, $01, $C3, $55, $8B, $EC, $53, $56, $57, $A1, $B8, + $97, $40, $00, $85, $C0, $74, $4E, $8B, $1D, $BC, $97, $40, $00, $8B, $78, $04, + $33, $C0, $55, $68, $11, $35, $40, $00, $64, $FF, $30, $64, $89, $20, $85, $DB, + $7E, $15, $4B, $89, $1D, $BC, $97, $40, $00, $8B, $74, $DF, $04, $85, $F6, $74, + $02, $FF, $D6, $85, $DB, $7F, $EB, $33, $C0, $5A, $59, $59, $64, $89, $10, $EB, + $14, $E9, $9A, $FB, $FF, $FF, $E8, $AD, $FF, $FF, $FF, $E8, $9C, $FD, $FF, $FF, + $E8, $EB, $FD, $FF, $FF, $5F, $5E, $5B, $5D, $C3, $8B, $C0, $55, $8B, $EC, $51, + $53, $56, $57, $A1, $B8, $97, $40, $00, $85, $C0, $74, $51, $8B, $38, $33, $DB, + $8B, $40, $04, $89, $45, $FC, $33, $C0, $55, $68, $79, $35, $40, $00, $64, $FF, + $30, $64, $89, $20, $3B, $FB, $7E, $17, $8B, $45, $FC, $8B, $34, $D8, $43, $89, + $1D, $BC, $97, $40, $00, $85, $F6, $74, $02, $FF, $D6, $3B, $FB, $7F, $E9, $33, + $C0, $5A, $59, $59, $64, $89, $10, $EB, $14, $E9, $32, $FB, $FF, $FF, $E8, $45, + $FF, $FF, $FF, $E8, $34, $FD, $FF, $FF, $E8, $83, $FD, $FF, $FF, $5F, $5E, $5B, + $59, $5D, $C3, $90, $51, $56, $57, $BE, $B0, $97, $40, $00, $8D, $7D, $C4, $B9, + $0B, $00, $00, $00, $F3, $A5, $8F, $05, $D0, $97, $40, $00, $8F, $05, $CC, $97, + $40, $00, $89, $2D, $C4, $97, $40, $00, $89, $1D, $C8, $97, $40, $00, $A3, $B8, + $97, $40, $00, $89, $15, $C0, $97, $40, $00, $8D, $4D, $C4, $89, $0D, $B0, $97, + $40, $00, $31, $C9, $83, $7D, $0C, $00, $75, $02, $8B, $08, $89, $0D, $BC, $97, + $40, $00, $B8, $08, $10, $40, $00, $A3, $10, $70, $40, $00, $B8, $10, $10, $40, + $00, $A3, $14, $70, $40, $00, $E8, $85, $FE, $FF, $FF, $8B, $45, $0C, $40, $A2, + $D8, $97, $40, $00, $48, $59, $8B, $11, $89, $15, $D4, $97, $40, $00, $74, $07, + $3C, $03, $7D, $03, $FF, $14, $81, $51, $8B, $4C, $24, $08, $85, $C9, $74, $08, + $8B, $45, $0C, $8B, $55, $10, $FF, $D1, $59, $8B, $45, $0C, $3C, $03, $7C, $03, + $FF, $14, $81, $83, $3D, $1C, $70, $40, $00, $00, $75, $0D, $C6, $05, $24, $70, + $40, $00, $01, $D9, $3D, $0C, $60, $40, $00, $8B, $45, $0C, $48, $0F, $85, $29, + $01, $00, $00, $E8, $D4, $FE, $FF, $FF, $C2, $04, $00, $C3, $53, $56, $57, $BF, + $44, $67, $40, $00, $B3, $10, $8B, $35, $00, $60, $40, $00, $8B, $C6, $B9, $0A, + $00, $00, $00, $99, $F7, $F9, $80, $C2, $30, $0F, $B6, $C3, $88, $14, $07, $B9, + $0A, $00, $00, $00, $8B, $C6, $99, $F7, $F9, $89, $C6, $4B, $85, $F6, $75, $DC, + $B3, $1C, $8B, $35, $04, $60, $40, $00, $8B, $C6, $83, $E0, $0F, $0F, $B6, $80, + $64, $67, $40, $00, $0F, $B6, $D3, $88, $04, $17, $B9, $10, $00, $00, $00, $8B, + $C6, $33, $D2, $F7, $F1, $89, $C6, $4B, $85, $F6, $75, $DC, $5F, $5E, $5B, $C3, + $31, $C0, $87, $05, $00, $60, $40, $00, $F7, $D8, $19, $C0, $40, $BF, $B0, $97, + $40, $00, $8B, $5F, $18, $8B, $6F, $14, $FF, $77, $1C, $FF, $77, $20, $8B, $37, + $B9, $0B, $00, $00, $00, $F3, $A5, $5F, $5E, $C9, $C2, $0C, $00, $C3, $8B, $C0, + $51, $80, $3D, $34, $70, $40, $00, $00, $74, $57, $66, $81, $3D, $08, $72, $40, + $00, $B2, $D7, $75, $14, $83, $3D, $10, $72, $40, $00, $00, $76, $0B, $B8, $04, + $72, $40, $00, $FF, $15, $20, $72, $40, $00, $6A, $00, $8D, $44, $24, $04, $50, + $6A, $1E, $68, $44, $67, $40, $00, $6A, $F5, $E8, $D2, $D8, $FF, $FF, $50, $E8, + $EC, $D8, $FF, $FF, $6A, $00, $8D, $44, $24, $04, $50, $6A, $02, $68, $78, $37, + $40, $00, $6A, $F5, $E8, $B7, $D8, $FF, $FF, $50, $E8, $D1, $D8, $FF, $FF, $5A, + $C3, $80, $3D, $18, $60, $40, $00, $00, $75, $13, $6A, $00, $68, $3C, $67, $40, + $00, $68, $44, $67, $40, $00, $6A, $00, $E8, $C3, $D8, $FF, $FF, $5A, $C3, $00, + $FF, $FF, $FF, $FF, $02, $00, $00, $00, $0D, $0A, $00, $00, $53, $56, $57, $55, + $BB, $B0, $97, $40, $00, $BF, $30, $70, $40, $00, $80, $7B, $28, $00, $75, $14, + $83, $3F, $00, $74, $0F, $8B, $07, $89, $C6, $33, $C0, $89, $07, $FF, $D6, $83, + $3F, $00, $75, $F1, $83, $3D, $04, $60, $40, $00, $00, $74, $11, $E8, $AA, $FE, + $FF, $FF, $E8, $39, $FF, $FF, $FF, $33, $C0, $A3, $04, $60, $40, $00, $80, $7B, + $28, $02, $75, $0E, $83, $3D, $00, $60, $40, $00, $00, $75, $05, $33, $C0, $89, + $43, $0C, $E8, $F1, $FC, $FF, $FF, $80, $7B, $28, $01, $76, $09, $83, $3D, $00, + $60, $40, $00, $00, $74, $23, $8B, $7B, $10, $85, $FF, $74, $1C, $8B, $C7, $E8, + $94, $04, $00, $00, $8B, $6B, $10, $8B, $75, $10, $3B, $75, $04, $74, $0A, $85, + $F6, $74, $06, $56, $E8, $2F, $D8, $FF, $FF, $E8, $92, $FC, $FF, $FF, $80, $7B, + $28, $01, $75, $03, $FF, $53, $24, $80, $7B, $28, $00, $74, $05, $E8, $9E, $FE, + $FF, $FF, $83, $3B, $00, $75, $1A, $83, $3D, $18, $70, $40, $00, $00, $74, $06, + $FF, $15, $18, $70, $40, $00, $A1, $00, $60, $40, $00, $50, $E8, $E7, $D7, $FF, + $FF, $8B, $03, $8B, $F0, $8B, $FB, $B9, $0B, $00, $00, $00, $F3, $A5, $E9, $6B, + $FF, $FF, $FF, $5D, $5F, $5E, $5B, $C3, $A3, $00, $60, $40, $00, $E8, $1A, $FF, + $FF, $FF, $C3, $90, $8F, $05, $04, $60, $40, $00, $E9, $E9, $FF, $FF, $FF, $C3, + $8B, $10, $85, $D2, $74, $1C, $C7, $00, $00, $00, $00, $00, $8B, $4A, $F8, $49, + $7C, $10, $F0, $FF, $4A, $F8, $75, $0A, $50, $8D, $42, $F8, $E8, $2F, $F3, $FF, + $FF, $58, $C3, $90, $53, $56, $89, $C3, $89, $D6, $8B, $13, $85, $D2, $74, $1A, + $C7, $03, $00, $00, $00, $00, $8B, $4A, $F8, $49, $7C, $0E, $F0, $FF, $4A, $F8, + $75, $08, $8D, $42, $F8, $E8, $06, $F3, $FF, $FF, $83, $C3, $04, $4E, $75, $DA, + $5E, $5B, $C3, $90, $85, $D2, $74, $24, $8B, $4A, $F8, $41, $7F, $1A, $50, $52, + $8B, $42, $FC, $E8, $30, $00, $00, $00, $89, $C2, $58, $52, $8B, $48, $FC, $E8, + $B8, $F3, $FF, $FF, $5A, $58, $EB, $04, $F0, $FF, $42, $F8, $87, $10, $85, $D2, + $74, $14, $8B, $4A, $F8, $49, $7C, $0E, $F0, $FF, $4A, $F8, $75, $08, $8D, $42, + $F8, $E8, $BA, $F2, $FF, $FF, $C3, $90, $85, $C0, $7E, $24, $50, $83, $C0, $0A, + $83, $E0, $FE, $50, $E8, $8B, $F2, $FF, $FF, $5A, $66, $C7, $44, $02, $FE, $00, + $00, $83, $C0, $08, $5A, $89, $50, $FC, $C7, $40, $F8, $01, $00, $00, $00, $C3, + $31, $C0, $C3, $90, $53, $56, $57, $89, $C3, $89, $D6, $89, $CF, $89, $F8, $E8, + $C4, $FF, $FF, $FF, $89, $F9, $89, $C7, $85, $F6, $74, $09, $89, $C2, $89, $F0, + $E8, $47, $F3, $FF, $FF, $89, $D8, $E8, $14, $FF, $FF, $FF, $89, $3B, $5F, $5E, + $5B, $C3, $8B, $C0, $52, $89, $E2, $B9, $01, $00, $00, $00, $E8, $C3, $FF, $FF, + $FF, $5A, $C3, $90, $85, $D2, $74, $46, $8B, $08, $85, $C9, $0F, $84, $42, $FF, + $FF, $FF, $53, $56, $57, $89, $C3, $89, $D6, $8B, $79, $FC, $8B, $56, $FC, $01, + $FA, $70, $26, $39, $CE, $74, $17, $E8, $14, $02, $00, $00, $89, $F0, $8B, $4E, + $FC, $8B, $13, $01, $FA, $E8, $F2, $F2, $FF, $FF, $5F, $5E, $5B, $C3, $E8, $FD, + $01, $00, $00, $8B, $03, $89, $F9, $EB, $E8, $E9, $DA, $F5, $FF, $FF, $C3, $90, + $39, $D0, $74, $30, $85, $D0, $74, $40, $0F, $B6, $08, $2A, $0A, $75, $25, $53, + $8B, $58, $FC, $2B, $5A, $FC, $53, $83, $D1, $FF, $21, $D9, $2B, $48, $FC, $29, + $C8, $29, $CA, $8B, $1C, $01, $33, $1C, $11, $75, $0A, $83, $C1, $04, $78, $F3, + $58, $01, $C0, $5B, $C3, $0F, $BC, $DB, $C1, $EB, $03, $01, $D9, $79, $F1, $8A, + $04, $01, $3A, $04, $11, $5B, $5B, $C3, $85, $C0, $74, $08, $85, $D2, $75, $B8, + $39, $50, $FC, $C3, $3B, $42, $FC, $C3, $85, $C0, $74, $0A, $C3, $FF, $FF, $FF, + $FF, $00, $00, $00, $00, $00, $B8, $25, $3A, $40, $00, $C3, $53, $85, $C0, $74, + $2D, $8B, $58, $FC, $85, $DB, $74, $26, $4A, $7C, $1B, $39, $DA, $7D, $1F, $29, + $D3, $85, $C9, $7C, $19, $39, $D9, $7F, $11, $01, $C2, $8B, $44, $24, $08, $E8, + $E0, $FE, $FF, $FF, $EB, $11, $31, $D2, $EB, $E5, $89, $D9, $EB, $EB, $8B, $44, + $24, $08, $E8, $09, $FE, $FF, $FF, $5B, $C2, $04, $00, $C3, $53, $56, $83, $C4, + $F0, $85, $D2, $74, $4E, $85, $C0, $74, $4A, $8B, $72, $FC, $8B, $58, $FC, $39, + $DE, $7C, $40, $85, $DB, $7E, $3C, $4B, $01, $D6, $01, $DA, $89, $74, $24, $08, + $01, $D8, $89, $54, $24, $04, $F7, $DB, $0F, $B6, $08, $89, $1C, $24, $0F, $85, + $99, $00, $00, $00, $83, $EE, $02, $89, $74, $24, $0C, $3A, $0A, $74, $41, $3A, + $4A, $01, $74, $4C, $83, $C2, $02, $3B, $54, $24, $0C, $72, $0A, $3B, $54, $24, + $08, $72, $E8, $31, $C0, $EB, $30, $3A, $0A, $74, $25, $3A, $4A, $01, $74, $30, + $3A, $4A, $02, $74, $18, $3A, $4A, $03, $74, $23, $83, $C2, $04, $3B, $54, $24, + $0C, $72, $E4, $3B, $54, $24, $08, $72, $C2, $31, $C0, $EB, $0A, $83, $C2, $02, + $42, $89, $D0, $2B, $44, $24, $04, $83, $C4, $10, $5E, $5B, $C3, $83, $C2, $02, + $83, $C2, $02, $31, $C0, $3B, $54, $24, $08, $77, $06, $89, $D0, $2B, $44, $24, + $04, $83, $C4, $10, $5E, $5B, $C3, $3A, $0A, $74, $75, $3A, $4A, $01, $74, $43, + $3A, $4A, $02, $74, $68, $3A, $4A, $03, $74, $36, $83, $C2, $04, $3B, $54, $24, + $0C, $72, $E4, $3B, $54, $24, $08, $72, $0B, $31, $C0, $EB, $4A, $83, $EE, $02, + $89, $74, $24, $0C, $3A, $0A, $74, $48, $3A, $4A, $01, $74, $16, $83, $C2, $02, + $3B, $54, $24, $0C, $72, $C1, $3B, $54, $24, $08, $72, $E8, $31, $C0, $EB, $27, + $83, $C2, $02, $8B, $34, $24, $0F, $B7, $1C, $30, $66, $3B, $5C, $32, $01, $75, + $DC, $83, $C6, $02, $7C, $F0, $83, $C2, $02, $31, $C0, $3B, $54, $24, $08, $77, + $06, $89, $D0, $2B, $44, $24, $04, $83, $C4, $10, $5E, $5B, $C3, $83, $C2, $02, + $8B, $34, $24, $0F, $B7, $1C, $30, $66, $3B, $1C, $32, $75, $AB, $83, $C6, $02, + $7C, $F1, $42, $89, $D0, $2B, $44, $24, $04, $83, $C4, $10, $5E, $5B, $C3, $90, + $53, $56, $57, $89, $C3, $89, $D6, $31, $FF, $85, $D2, $7E, $48, $8B, $03, $85, + $C0, $74, $23, $83, $78, $F8, $01, $75, $1D, $83, $E8, $08, $83, $C2, $09, $50, + $89, $E0, $E8, $01, $F0, $FF, $FF, $58, $83, $C0, $08, $89, $03, $89, $70, $FC, + $C6, $04, $06, $00, $EB, $28, $89, $D0, $E8, $1B, $FD, $FF, $FF, $89, $C7, $8B, + $03, $85, $C0, $74, $10, $89, $FA, $8B, $48, $FC, $39, $F1, $7C, $02, $89, $F1, + $E8, $97, $F0, $FF, $FF, $89, $D8, $E8, $64, $FC, $FF, $FF, $89, $3B, $5F, $5E, + $5B, $C3, $8B, $C0, $B0, $11, $E9, $65, $F0, $FF, $FF, $C3, $55, $8B, $EC, $83, + $C4, $F8, $53, $56, $57, $89, $45, $FC, $A1, $20, $60, $40, $00, $89, $45, $F8, + $83, $7D, $F8, $00, $74, $39, $33, $C0, $55, $68, $57, $3C, $40, $00, $64, $FF, + $30, $64, $89, $20, $8B, $5D, $F8, $8B, $45, $FC, $FF, $53, $04, $33, $C0, $5A, + $59, $59, $64, $89, $10, $EB, $0A, $E9, $54, $F4, $FF, $FF, $E8, $AF, $F6, $FF, + $FF, $8B, $45, $F8, $8B, $00, $89, $45, $F8, $83, $7D, $F8, $00, $75, $C7, $5F, + $5E, $5B, $59, $59, $5D, $C3, $8B, $C0, $8B, $15, $1C, $60, $40, $00, $89, $10, + $A3, $1C, $60, $40, $00, $C3, $8B, $C0, $55, $8B, $EC, $51, $89, $45, $FC, $33, + $D2, $55, $68, $EC, $3C, $40, $00, $64, $FF, $32, $64, $89, $22, $8B, $45, $FC, + $8B, $40, $04, $E8, $74, $FF, $FF, $FF, $33, $C0, $5A, $59, $59, $64, $89, $10, + $68, $F3, $3C, $40, $00, $8B, $45, $FC, $3B, $05, $1C, $60, $40, $00, $75, $0C, + $8B, $45, $FC, $8B, $00, $A3, $1C, $60, $40, $00, $EB, $1F, $A1, $1C, $60, $40, + $00, $85, $C0, $74, $16, $8B, $10, $3B, $55, $FC, $75, $09, $8B, $55, $FC, $8B, + $12, $89, $10, $EB, $06, $8B, $00, $85, $C0, $75, $EA, $C3, $E9, $EB, $F4, $FF, + $FF, $EB, $C2, $59, $5D, $C3, $8B, $C0, $FF, $25, $64, $A1, $40, $00, $8B, $C0, + $55, $8B, $EC, $33, $C0, $55, $68, $54, $3D, $40, $00, $64, $FF, $30, $64, $89, + $20, $FF, $05, $A0, $75, $40, $00, $75, $2D, $B8, $38, $70, $40, $00, $E8, $79, + $F0, $FF, $FF, $B8, $04, $72, $40, $00, $E8, $6F, $F0, $FF, $FF, $B8, $D0, $73, + $40, $00, $E8, $65, $F0, $FF, $FF, $E8, $14, $EE, $FF, $FF, $B8, $24, $60, $40, + $00, $E8, $2A, $FB, $FF, $FF, $33, $C0, $5A, $59, $59, $64, $89, $10, $68, $5B, + $3D, $40, $00, $C3, $E9, $83, $F4, $FF, $FF, $EB, $F8, $5D, $C3, $8D, $40, $00, + $FF, $25, $B8, $A1, $40, $00, $8B, $C0, $FF, $25, $B4, $A1, $40, $00, $8B, $C0, + $FF, $25, $B0, $A1, $40, $00, $8B, $C0, $FF, $25, $AC, $A1, $40, $00, $8B, $C0, + $FF, $25, $A8, $A1, $40, $00, $8B, $C0, $FF, $25, $A4, $A1, $40, $00, $8B, $C0, + $50, $6A, $40, $E8, $C8, $FF, $FF, $FF, $C3, $8D, $40, $00, $B8, $08, $00, $00, + $00, $C3, $8B, $C0, $53, $E8, $F2, $FF, $FF, $FF, $8B, $D8, $85, $DB, $74, $36, + $83, $3D, $74, $67, $40, $00, $FF, $75, $0A, $B8, $E2, $00, $00, $00, $E8, $A1, + $FA, $FF, $FF, $8B, $C3, $E8, $C6, $FF, $FF, $FF, $85, $C0, $75, $0C, $B8, $E2, + $00, $00, $00, $E8, $8C, $FA, $FF, $FF, $EB, $0C, $50, $A1, $74, $67, $40, $00, + $50, $E8, $A2, $FF, $FF, $FF, $5B, $C3, $B8, $08, $00, $00, $00, $85, $C0, $74, + $1F, $E8, $7A, $FF, $FF, $FF, $A3, $74, $67, $40, $00, $E8, $A4, $FF, $FF, $FF, + $A1, $74, $67, $40, $00, $50, $E8, $75, $FF, $FF, $FF, $A3, $E8, $97, $40, $00, + $C3, $8D, $40, $00, $B8, $08, $00, $00, $00, $85, $C0, $74, $2B, $83, $3D, $74, + $67, $40, $00, $FF, $74, $22, $A1, $74, $67, $40, $00, $50, $E8, $4F, $FF, $FF, + $FF, $85, $C0, $74, $13, $50, $E8, $2D, $FF, $FF, $FF, $6A, $00, $A1, $74, $67, + $40, $00, $50, $E8, $40, $FF, $FF, $FF, $C3, $8D, $40, $00, $B8, $08, $00, $00, + $00, $85, $C0, $74, $19, $E8, $BA, $FF, $FF, $FF, $83, $3D, $74, $67, $40, $00, + $FF, $74, $0B, $A1, $74, $67, $40, $00, $50, $E8, $0A, $FF, $FF, $FF, $C3, $90, + $8A, $0D, $DC, $97, $40, $00, $A1, $74, $67, $40, $00, $84, $C9, $75, $26, $64, + $8B, $15, $2C, $00, $00, $00, $8B, $04, $82, $C3, $E8, $15, $FF, $FF, $FF, $A1, + $74, $67, $40, $00, $50, $E8, $E6, $FE, $FF, $FF, $85, $C0, $74, $01, $C3, $A1, + $E8, $97, $40, $00, $C3, $50, $E8, $D5, $FE, $FF, $FF, $85, $C0, $74, $DB, $C3, + $B8, $78, $67, $40, $00, $E8, $BE, $FD, $FF, $FF, $C3, $90, $BA, $78, $67, $40, + $00, $83, $7D, $0C, $01, $75, $2A, $50, $52, $C6, $05, $DC, $97, $40, $00, $01, + $8B, $4D, $08, $89, $0D, $E0, $97, $40, $00, $89, $4A, $04, $C7, $42, $08, $00, + $00, $00, $00, $C7, $42, $0C, $00, $00, $00, $00, $E8, $C1, $FF, $FF, $FF, $5A, + $58, $FF, $35, $E4, $97, $40, $00, $B9, $90, $67, $40, $00, $E8, $93, $F6, $FF, + $FF, $C3, $8B, $C0, $FF, $25, $F4, $A1, $40, $00, $8B, $C0, $FF, $25, $F0, $A1, + $40, $00, $8B, $C0, $FF, $25, $EC, $A1, $40, $00, $8B, $C0, $FF, $25, $E8, $A1, + $40, $00, $8B, $C0, $FF, $25, $E4, $A1, $40, $00, $8B, $C0, $FF, $25, $E0, $A1, + $40, $00, $8B, $C0, $FF, $25, $DC, $A1, $40, $00, $8B, $C0, $FF, $25, $D8, $A1, + $40, $00, $8B, $C0, $FF, $25, $D4, $A1, $40, $00, $8B, $C0, $FF, $25, $D0, $A1, + $40, $00, $8B, $C0, $FF, $25, $CC, $A1, $40, $00, $8B, $C0, $FF, $25, $C8, $A1, + $40, $00, $8B, $C0, $FF, $25, $C0, $A1, $40, $00, $8B, $C0, $92, $E8, $2A, $ED, + $FF, $FF, $C3, $90, $55, $8B, $EC, $33, $C0, $55, $68, $AF, $3F, $40, $00, $64, + $FF, $30, $64, $89, $20, $FF, $05, $EC, $97, $40, $00, $75, $14, $83, $3D, $F0, + $97, $40, $00, $00, $74, $0B, $A1, $F0, $97, $40, $00, $50, $E8, $63, $FF, $FF, + $FF, $33, $C0, $5A, $59, $59, $64, $89, $10, $68, $B6, $3F, $40, $00, $C3, $E9, + $28, $F2, $FF, $FF, $EB, $F8, $5D, $C3, $55, $8B, $EC, $83, $C4, $EC, $53, $56, + $57, $55, $68, $6A, $42, $40, $00, $64, $FF, $35, $00, $00, $00, $00, $64, $89, + $25, $00, $00, $00, $00, $8B, $F8, $85, $C0, $0F, $84, $7D, $02, $00, $00, $C6, + $45, $FF, $00, $33, $D2, $C7, $45, $F8, $04, $00, $00, $00, $33, $C9, $89, $4D, + $EC, $0F, $B6, $30, $40, $66, $83, $FE, $66, $75, $09, $C7, $45, $F8, $02, $00, + $00, $00, $EB, $26, $66, $83, $FE, $67, $75, $06, $C6, $45, $FF, $01, $EB, $1A, + $8B, $CE, $66, $81, $E1, $E7, $00, $66, $83, $F9, $26, $74, $0D, $8B, $CE, $83, + $C1, $9C, $66, $83, $E9, $02, $72, $02, $B2, $01, $84, $D2, $74, $C3, $66, $83, + $FE, $0F, $75, $16, $0F, $B6, $30, $0F, $B7, $D6, $0F, $B7, $0C, $55, $A0, $69, + $40, $00, $66, $81, $C6, $00, $0F, $40, $EB, $0B, $0F, $B7, $D6, $0F, $B7, $0C, + $55, $A0, $67, $40, $00, $F6, $C1, $38, $0F, $84, $9A, $01, $00, $00, $0F, $B6, + $10, $8B, $DA, $80, $E3, $07, $0F, $B6, $DB, $89, $5D, $F4, $40, $8B, $DA, $80, + $E3, $C0, $80, $EB, $40, $74, $07, $80, $EB, $40, $74, $0B, $EB, $21, $C7, $45, + $F0, $01, $00, $00, $00, $EB, $1D, $80, $7D, $FF, $00, $74, $09, $C7, $45, $F0, + $02, $00, $00, $00, $EB, $0E, $C7, $45, $F0, $04, $00, $00, $00, $EB, $05, $33, + $DB, $89, $5D, $F0, $8B, $DA, $80, $E3, $C0, $80, $FB, $C0, $0F, $95, $C3, $22, + $5D, $FF, $75, $31, $83, $7D, $F4, $04, $75, $16, $8B, $DA, $80, $E3, $C0, $80, + $FB, $C0, $74, $0C, $0F, $B6, $18, $80, $E3, $07, $0F, $B6, $DB, $89, $5D, $F4, + $F6, $C2, $C0, $75, $0D, $83, $7D, $F4, $05, $75, $07, $C7, $45, $F0, $04, $00, + $00, $00, $03, $45, $F0, $8B, $D9, $83, $E3, $38, $83, $FB, $08, $0F, $85, $05, + $01, $00, $00, $0F, $B7, $CE, $81, $C1, $28, $FF, $FF, $FF, $83, $F9, $1F, $0F, + $87, $B0, $00, $00, $00, $0F, $B6, $89, $13, $41, $40, $00, $FF, $24, $8D, $33, + $41, $40, $00, $03, $04, $05, $06, $07, $08, $09, $0A, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $01, $02, $B5, $41, $40, $00, $5F, $41, $40, $00, $66, $41, $40, $00, $6F, + $41, $40, $00, $78, $41, $40, $00, $81, $41, $40, $00, $8A, $41, $40, $00, $93, + $41, $40, $00, $9C, $41, $40, $00, $A5, $41, $40, $00, $AE, $41, $40, $00, $33, + $C9, $89, $4D, $EC, $EB, $4F, $C7, $45, $EC, $01, $00, $00, $00, $EB, $46, $C7, + $45, $EC, $02, $00, $00, $00, $EB, $3D, $C7, $45, $EC, $03, $00, $00, $00, $EB, + $34, $C7, $45, $EC, $04, $00, $00, $00, $EB, $2B, $C7, $45, $EC, $05, $00, $00, + $00, $EB, $22, $C7, $45, $EC, $06, $00, $00, $00, $EB, $19, $C7, $45, $EC, $07, + $00, $00, $00, $EB, $10, $C7, $45, $EC, $08, $00, $00, $00, $EB, $07, $C7, $45, + $EC, $09, $00, $00, $00, $8B, $CA, $80, $E1, $C0, $80, $F9, $C0, $74, $1D, $0F, + $B6, $D2, $C1, $EA, $03, $83, $E2, $07, $8B, $4D, $EC, $03, $C9, $03, $C9, $8D, + $0C, $CD, $A0, $6B, $40, $00, $0F, $B7, $0C, $51, $EB, $1C, $0F, $B6, $D2, $C1, + $EA, $03, $83, $E2, $07, $8B, $4D, $EC, $03, $C9, $03, $C9, $8D, $0C, $CD, $A0, + $6B, $40, $00, $0F, $B7, $4C, $51, $10, $81, $E1, $00, $0C, $00, $00, $81, $E9, + $00, $04, $00, $00, $74, $12, $81, $E9, $00, $04, $00, $00, $74, $0D, $81, $E9, + $00, $04, $00, $00, $74, $0A, $EB, $0D, $40, $EB, $41, $83, $C0, $02, $EB, $3C, + $03, $45, $F8, $EB, $37, $66, $81, $EE, $9A, $00, $74, $15, $83, $C6, $FA, $66, + $83, $EE, $04, $72, $19, $66, $83, $EE, $24, $74, $0E, $66, $83, $EE, $22, $75, + $1B, $03, $45, $F8, $83, $C0, $02, $EB, $13, $83, $C0, $03, $EB, $0E, $80, $7D, + $FF, $00, $74, $05, $83, $C0, $02, $EB, $03, $83, $C0, $04, $8B, $D8, $2B, $DF, + $33, $C0, $5A, $59, $59, $64, $89, $10, $EB, $0C, $E9, $41, $EE, $FF, $FF, $33, + $DB, $E8, $9A, $F0, $FF, $FF, $8B, $C3, $5F, $5E, $5B, $8B, $E5, $5D, $C3, $90, + $53, $56, $57, $55, $51, $8B, $EA, $89, $04, $24, $33, $DB, $8B, $34, $24, $8B, + $C6, $E8, $22, $FD, $FF, $FF, $8B, $F8, $03, $F7, $03, $DF, $83, $FB, $05, $72, + $EE, $8B, $CB, $8B, $14, $24, $8B, $C5, $E8, $BF, $FC, $FF, $FF, $8B, $C5, $8B, + $D0, $03, $D3, $C6, $02, $E9, $2B, $F0, $2B, $F3, $83, $EE, $05, $42, $89, $32, + $8B, $C3, $5A, $5D, $5F, $5E, $5B, $C3, $55, $8B, $EC, $83, $C4, $F0, $53, $56, + $57, $89, $4D, $F8, $89, $55, $FC, $C6, $45, $F7, $00, $8B, $D0, $66, $81, $3A, + $FF, $25, $75, $07, $8B, $42, $02, $8B, $18, $EB, $02, $8B, $D8, $8D, $45, $F0, + $50, $6A, $40, $6A, $05, $53, $E8, $61, $FC, $FF, $FF, $85, $C0, $74, $7C, $33, + $D2, $55, $68, $6D, $43, $40, $00, $64, $FF, $32, $64, $89, $22, $6A, $40, $68, + $00, $10, $00, $00, $68, $00, $10, $00, $00, $6A, $00, $E8, $2C, $FC, $FF, $FF, + $8B, $F0, $8B, $FB, $89, $3E, $8B, $D6, $83, $C2, $05, $8B, $C3, $E8, $4E, $FF, + $FF, $FF, $8B, $D6, $83, $C2, $04, $88, $02, $C6, $03, $E9, $8B, $45, $FC, $2B, + $C7, $83, $E8, $05, $47, $89, $07, $8D, $45, $F0, $50, $8B, $45, $F0, $50, $6A, + $05, $53, $E8, $05, $FC, $FF, $FF, $83, $C6, $05, $8B, $45, $F8, $89, $30, $C6, + $45, $F7, $01, $33, $C0, $5A, $59, $59, $64, $89, $10, $EB, $0E, $E9, $3E, $ED, + $FF, $FF, $C6, $45, $F7, $00, $E8, $95, $EF, $FF, $FF, $0F, $B6, $45, $F7, $5F, + $5E, $5B, $8B, $E5, $5D, $C3, $8B, $C0, $55, $8B, $EC, $83, $C4, $F8, $53, $56, + $57, $8B, $F8, $B3, $01, $33, $D2, $55, $68, $F9, $43, $40, $00, $64, $FF, $32, + $64, $89, $22, $8B, $C7, $8B, $D0, $83, $EA, $05, $8B, $32, $48, $0F, $B6, $00, + $89, $45, $F8, $8D, $45, $FC, $50, $6A, $40, $6A, $05, $56, $E8, $9B, $FB, $FF, + $FF, $8B, $4D, $F8, $8B, $D7, $8B, $C6, $E8, $9F, $FB, $FF, $FF, $8D, $45, $FC, + $50, $8B, $45, $FC, $50, $6A, $05, $56, $E8, $7F, $FB, $FF, $FF, $8B, $C7, $83, + $E8, $05, $68, $00, $80, $00, $00, $6A, $00, $50, $E8, $65, $FB, $FF, $FF, $33, + $C0, $5A, $59, $59, $64, $89, $10, $EB, $0C, $E9, $B2, $EC, $FF, $FF, $33, $DB, + $E8, $0B, $EF, $FF, $FF, $8B, $C3, $5F, $5E, $5B, $59, $59, $5D, $C3, $8B, $C0, + $85, $C0, $74, $75, $85, $D2, $74, $6D, $57, $53, $31, $FF, $8B, $58, $FC, $89, + $D9, $2B, $5A, $FC, $83, $D7, $FF, $53, $21, $FB, $89, $C7, $29, $CB, $7D, $13, + $29, $DF, $29, $DA, $8B, $04, $1F, $8B, $0C, $1A, $31, $C8, $75, $13, $83, $C3, + $04, $7C, $F1, $58, $5B, $5F, $C3, $8B, $04, $1F, $8B, $0C, $1A, $31, $C8, $74, + $ED, $A9, $DF, $DF, $DF, $DF, $75, $3E, $01, $C0, $01, $C0, $85, $C8, $75, $36, + $81, $E1, $5F, $5F, $5F, $5F, $81, $C1, $3F, $3F, $3F, $3F, $81, $E1, $7F, $7F, + $7F, $7F, $81, $C1, $66, $66, $66, $66, $85, $C1, $75, $1A, $83, $C3, $04, $7C, + $C6, $58, $5B, $5F, $C3, $8B, $40, $FC, $C3, $85, $D2, $74, $03, $2B, $42, $FC, + $C3, $83, $C3, $01, $7D, $EB, $0F, $B6, $04, $1F, $0F, $B6, $0C, $1A, $83, $E8, + $61, $83, $E9, $61, $3C, $19, $77, $03, $83, $E8, $20, $80, $F9, $19, $77, $03, + $83, $E9, $20, $29, $C8, $74, $DA, $59, $5B, $5F, $C3, $90, $39, $D0, $74, $19, + $09, $C0, $74, $17, $09, $D2, $74, $14, $8B, $48, $FC, $3B, $4A, $FC, $75, $0C, + $E8, $3B, $FF, $FF, $FF, $85, $C0, $75, $03, $B0, $01, $C3, $31, $C0, $C3, $90, + $55, $8B, $EC, $83, $C4, $F8, $53, $56, $57, $33, $C9, $89, $4D, $F8, $8B, $F2, + $89, $45, $FC, $33, $C0, $55, $68, $4F, $45, $40, $00, $64, $FF, $30, $64, $89, + $20, $8B, $C6, $85, $C0, $74, $05, $83, $E8, $04, $8B, $00, $8B, $F8, $85, $FF, + $7E, $27, $0F, $B6, $5C, $3E, $FF, $84, $DB, $74, $1E, $8D, $45, $F8, $8B, $D3, + $E8, $3F, $F4, $FF, $FF, $8B, $45, $F8, $8B, $55, $FC, $E8, $3C, $F5, $FF, $FF, + $85, $C0, $75, $05, $4F, $85, $FF, $7F, $D9, $33, $C0, $5A, $59, $59, $64, $89, + $10, $68, $56, $45, $40, $00, $8D, $45, $F8, $E8, $22, $F3, $FF, $FF, $C3, $E9, + $88, $EC, $FF, $FF, $EB, $F0, $8B, $C7, $5F, $5E, $5B, $59, $59, $5D, $C3, $90, + $53, $56, $57, $8B, $FA, $8B, $D8, $8B, $D3, $B8, $94, $45, $40, $00, $E8, $6D, + $FF, $FF, $FF, $8B, $F0, $57, $8D, $56, $01, $B9, $FF, $FF, $FF, $7F, $8B, $C3, + $E8, $A7, $F4, $FF, $FF, $5F, $5E, $5B, $C3, $00, $00, $00, $FF, $FF, $FF, $FF, + $01, $00, $00, $00, $5C, $00, $00, $00, $53, $56, $57, $55, $81, $C4, $00, $FC, + $FF, $FF, $8B, $F2, $8B, $F8, $8B, $C6, $E8, $C3, $F2, $FF, $FF, $68, $00, $04, + $00, $00, $8D, $44, $24, $04, $50, $8B, $C7, $E8, $5A, $F4, $FF, $FF, $8B, $E8, + $55, $E8, $4E, $F9, $FF, $FF, $8B, $D8, $81, $FB, $00, $04, $00, $00, $7D, $0D, + $8B, $D4, $8B, $C6, $8B, $CB, $E8, $59, $F3, $FF, $FF, $EB, $19, $8B, $D3, $4A, + $8B, $C6, $E8, $C9, $F5, $FF, $FF, $53, $8B, $06, $E8, $29, $F4, $FF, $FF, $50, + $55, $E8, $1E, $F9, $FF, $FF, $81, $C4, $00, $04, $00, $00, $5D, $5F, $5E, $5B, + $C3, $8D, $40, $00, $53, $56, $81, $C4, $F8, $FE, $FF, $FF, $8B, $F2, $8B, $D8, + $68, $05, $01, $00, $00, $8D, $44, $24, $04, $50, $53, $E8, $FC, $F8, $FF, $FF, + $8B, $C8, $8B, $D4, $8B, $C6, $E8, $09, $F3, $FF, $FF, $81, $C4, $08, $01, $00, + $00, $5E, $5B, $C3, $FF, $FF, $FF, $FF, $02, $00, $00, $00, $00, $00, $00, $00, + $55, $8B, $EC, $33, $C0, $55, $68, $71, $46, $40, $00, $64, $FF, $30, $64, $89, + $20, $FF, $05, $F4, $97, $40, $00, $75, $0A, $B8, $E0, $6C, $40, $00, $E8, $0D, + $F2, $FF, $FF, $33, $C0, $5A, $59, $59, $64, $89, $10, $68, $78, $46, $40, $00, + $C3, $E9, $66, $EB, $FF, $FF, $EB, $F8, $5D, $C3, $8B, $C0, $FF, $25, $00, $98, + $40, $00, $C3, $90, $FF, $25, $04, $98, $40, $00, $C3, $90, $55, $8B, $EC, $6A, + $00, $53, $33, $C0, $55, $68, $4C, $47, $40, $00, $64, $FF, $30, $64, $89, $20, + $8D, $45, $FC, $BA, $04, $01, $00, $00, $E8, $03, $F5, $FF, $FF, $68, $04, $01, + $00, $00, $8B, $45, $FC, $E8, $5E, $F3, $FF, $FF, $50, $E8, $74, $F8, $FF, $FF, + $8B, $D8, $8D, $45, $FC, $8B, $D3, $E8, $E4, $F4, $FF, $FF, $8B, $45, $FC, $80, + $7C, $18, $FF, $5C, $74, $0D, $8D, $45, $FC, $BA, $60, $47, $40, $00, $E8, $91, + $F2, $FF, $FF, $8D, $45, $FC, $BA, $6C, $47, $40, $00, $E8, $84, $F2, $FF, $FF, + $8B, $45, $FC, $E8, $20, $F3, $FF, $FF, $50, $E8, $3E, $F8, $FF, $FF, $A3, $FC, + $97, $40, $00, $83, $3D, $FC, $97, $40, $00, $00, $76, $2A, $68, $7C, $47, $40, + $00, $A1, $FC, $97, $40, $00, $50, $E8, $10, $F8, $FF, $FF, $A3, $00, $98, $40, + $00, $68, $90, $47, $40, $00, $A1, $FC, $97, $40, $00, $50, $E8, $FB, $F7, $FF, + $FF, $A3, $04, $98, $40, $00, $33, $C0, $5A, $59, $59, $64, $89, $10, $68, $53, + $47, $40, $00, $8D, $45, $FC, $E8, $25, $F1, $FF, $FF, $C3, $E9, $8B, $EA, $FF, + $FF, $EB, $F0, $5B, $59, $5D, $C3, $00, $FF, $FF, $FF, $FF, $01, $00, $00, $00, + $5C, $00, $00, $00, $FF, $FF, $FF, $FF, $0C, $00, $00, $00, $73, $68, $66, $6F, + $6C, $64, $65, $72, $2E, $64, $6C, $6C, $00, $00, $00, $00, $53, $48, $47, $65, + $74, $46, $6F, $6C, $64, $65, $72, $50, $61, $74, $68, $41, $00, $00, $00, $00, + $53, $48, $47, $65, $74, $46, $6F, $6C, $64, $65, $72, $50, $61, $74, $68, $57, + $00, $00, $00, $00, $A1, $FC, $97, $40, $00, $50, $E8, $55, $F7, $FF, $FF, $C3, + $55, $8B, $EC, $33, $C0, $55, $68, $DC, $47, $40, $00, $64, $FF, $30, $64, $89, + $20, $FF, $05, $F8, $97, $40, $00, $75, $05, $E8, $D6, $FF, $FF, $FF, $33, $C0, + $5A, $59, $59, $64, $89, $10, $68, $E3, $47, $40, $00, $C3, $E9, $FB, $E9, $FF, + $FF, $EB, $F8, $5D, $C3, $8D, $40, $00, $53, $56, $81, $C4, $F8, $FE, $FF, $FF, + $8B, $F2, $8B, $D8, $68, $05, $01, $00, $00, $8D, $44, $24, $04, $50, $53, $E8, + $60, $F7, $FF, $FF, $8B, $C8, $8B, $D4, $8B, $C6, $E8, $25, $F1, $FF, $FF, $81, + $C4, $08, $01, $00, $00, $5E, $5B, $C3, $55, $8B, $EC, $53, $8B, $D8, $53, $8B, + $45, $08, $8B, $40, $08, $50, $FF, $15, $0C, $98, $40, $00, $8B, $55, $08, $89, + $42, $FC, $5B, $5D, $C3, $8D, $40, $00, $55, $8B, $EC, $83, $C4, $F8, $53, $33, + $C0, $89, $45, $F8, $8D, $5D, $FC, $33, $C0, $55, $68, $BD, $48, $40, $00, $64, + $FF, $30, $64, $89, $20, $8D, $55, $F8, $8B, $45, $08, $E8, $88, $FF, $FF, $FF, + $BA, $D8, $48, $40, $00, $8B, $45, $F8, $E8, $4F, $FC, $FF, $FF, $84, $C0, $75, + $11, $BA, $F4, $48, $40, $00, $8B, $45, $F8, $E8, $3E, $FC, $FF, $FF, $84, $C0, + $74, $1B, $55, $33, $C0, $E8, $8E, $FF, $FF, $FF, $59, $68, $BB, $07, $00, $00, + $E8, $77, $F6, $FF, $FF, $50, $E8, $A9, $F6, $FF, $FF, $EB, $0A, $55, $8B, $45, + $0C, $E8, $72, $FF, $FF, $FF, $59, $33, $C0, $5A, $59, $59, $64, $89, $10, $68, + $C4, $48, $40, $00, $8D, $45, $F8, $E8, $B4, $EF, $FF, $FF, $C3, $E9, $1A, $E9, + $FF, $FF, $EB, $F0, $8B, $03, $5B, $59, $59, $5D, $C2, $08, $00, $00, $00, $00, + $FF, $FF, $FF, $FF, $10, $00, $00, $00, $54, $54, $72, $69, $61, $6C, $57, $69, + $7A, $61, $72, $64, $46, $6F, $72, $6D, $00, $00, $00, $00, $FF, $FF, $FF, $FF, + $12, $00, $00, $00, $54, $41, $64, $76, $61, $6E, $63, $65, $64, $4C, $69, $63, + $65, $6E, $73, $65, $55, $49, $00, $00, $55, $8B, $EC, $6A, $00, $6A, $00, $33, + $C0, $55, $68, $9E, $49, $40, $00, $64, $FF, $30, $64, $89, $20, $8D, $55, $F8, + $33, $C0, $E8, $DD, $FC, $FF, $FF, $8B, $45, $F8, $8D, $55, $FC, $E8, $2E, $FC, + $FF, $FF, $BA, $B4, $49, $40, $00, $8B, $45, $FC, $E8, $7D, $FB, $FF, $FF, $84, + $C0, $74, $40, $8D, $55, $FC, $B8, $D0, $49, $40, $00, $E8, $48, $FC, $FF, $FF, + $8B, $45, $FC, $BA, $E4, $49, $40, $00, $E8, $63, $F0, $FF, $FF, $75, $24, $68, + $EC, $49, $40, $00, $E8, $BB, $F5, $FF, $FF, $68, $F8, $49, $40, $00, $50, $E8, + $B8, $F5, $FF, $FF, $B9, $0C, $98, $40, $00, $BA, $38, $48, $40, $00, $E8, $45, + $F9, $FF, $FF, $33, $C0, $5A, $59, $59, $64, $89, $10, $68, $A5, $49, $40, $00, + $8D, $45, $F8, $BA, $02, $00, $00, $00, $E8, $F7, $EE, $FF, $FF, $C3, $E9, $39, + $E8, $FF, $FF, $EB, $EB, $59, $59, $5D, $C3, $00, $00, $00, $FF, $FF, $FF, $FF, + $12, $00, $00, $00, $4C, $69, $63, $65, $6E, $73, $65, $4D, $61, $6E, $61, $67, + $65, $72, $2E, $65, $78, $65, $00, $00, $FF, $FF, $FF, $FF, $0B, $00, $00, $00, + $53, $45, $53, $53, $49, $4F, $4E, $4E, $41, $4D, $45, $00, $FF, $FF, $FF, $FF, + $07, $00, $00, $00, $43, $6F, $6E, $73, $6F, $31, $65, $00, $75, $73, $65, $72, + $33, $32, $2E, $64, $6C, $6C, $00, $00, $53, $68, $6F, $77, $57, $69, $6E, $64, + $6F, $77, $00, $00, $A1, $0C, $98, $40, $00, $85, $C0, $74, $05, $E8, $76, $F9, + $FF, $FF, $C3, $90, $55, $8B, $EC, $33, $C0, $55, $68, $40, $4A, $40, $00, $64, + $FF, $30, $64, $89, $20, $FF, $05, $08, $98, $40, $00, $75, $05, $E8, $D2, $FF, + $FF, $FF, $33, $C0, $5A, $59, $59, $64, $89, $10, $68, $47, $4A, $40, $00, $C3, + $E9, $97, $E7, $FF, $FF, $EB, $F8, $5D, $C3, $8D, $40, $00, $55, $8B, $EC, $33, + $C0, $55, $68, $6B, $4A, $40, $00, $64, $FF, $30, $64, $89, $20, $33, $C0, $5A, + $59, $59, $64, $89, $10, $68, $72, $4A, $40, $00, $C3, $E9, $6C, $E7, $FF, $FF, + $EB, $F8, $5D, $C3, $0B, $00, $00, $00, $7C, $4A, $40, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $50, $40, $00, $00, $3D, $40, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $98, $50, $40, $00, $74, $3F, $40, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $AC, $50, $40, $00, + $40, $46, $40, $00, $B4, $50, $40, $00, $B0, $47, $40, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $C4, $50, $40, $00, $14, $4A, $40, $00, $00, $00, $00, $00, + $4C, $4A, $40, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $83, $2D, $A0, $75, $40, $00, $01, $0F, $83, $87, $00, $00, $00, $E8, $86, $D9, + $FF, $FF, $C6, $05, $08, $60, $40, $00, $02, $C7, $05, $10, $70, $40, $00, $08, + $10, $40, $00, $C7, $05, $14, $70, $40, $00, $10, $10, $40, $00, $C6, $05, $36, + $70, $40, $00, $02, $C7, $05, $00, $70, $40, $00, $14, $3C, $40, $00, $E8, $55, + $DE, $FF, $FF, $84, $C0, $74, $05, $E8, $7C, $DE, $FF, $FF, $E8, $3B, $DF, $FF, + $FF, $66, $C7, $05, $3C, $70, $40, $00, $B0, $D7, $66, $C7, $05, $08, $72, $40, + $00, $B0, $D7, $66, $C7, $05, $D4, $73, $40, $00, $B0, $D7, $E8, $CF, $BF, $FF, + $FF, $A3, $2C, $70, $40, $00, $E8, $FD, $BF, $FF, $FF, $A3, $28, $70, $40, $00, + $E8, $73, $EC, $FF, $FF, $A3, $A4, $75, $40, $00, $E8, $E1, $BF, $FF, $FF, $A3, + $20, $70, $40, $00, $C3, $8D, $40, $00, $83, $2D, $EC, $97, $40, $00, $01, $73, + $07, $33, $C0, $A3, $F0, $97, $40, $00, $C3, $8D, $40, $00, $83, $2D, $F4, $97, + $40, $00, $01, $C3, $83, $2D, $F8, $97, $40, $00, $01, $73, $05, $E8, $CA, $F5, + $FF, $FF, $C3, $90, $83, $2D, $08, $98, $40, $00, $01, $73, $05, $E8, $36, $F8, + $FF, $FF, $C3, $90, $55, $8B, $EC, $83, $C4, $C4, $B8, $74, $4A, $40, $00, $E8, + $D8, $ED, $FF, $FF, $E8, $93, $E6, $FF, $FF, $8D, $40, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $02, $8D, $40, $00, $32, $13, $8B, $C0, + $00, $8D, $40, $00, $00, $8D, $40, $00, $00, $8D, $40, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $C4, $10, $40, $00, $00, $00, $10, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $24, $11, $40, $00, $00, $00, $18, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $38, $11, $40, $00, $00, $00, $20, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $58, $11, $40, $00, $00, $00, $28, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $84, $11, $40, $00, $00, $00, $30, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $A4, $11, $40, $00, $00, $00, $38, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $C8, $11, $40, $00, $00, $00, $40, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $F4, $11, $40, $00, $00, $00, $48, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $24, $12, $40, $00, $00, $00, $50, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $58, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $60, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $68, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $70, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $78, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $80, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $88, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $90, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $98, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $A0, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $B0, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $C0, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $D0, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $E0, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $F0, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $10, $01, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $20, $01, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $30, $01, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $01, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $60, $01, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $80, $01, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $A0, $01, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $C0, $01, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $E0, $01, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $10, $02, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $02, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $70, $02, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $A0, $02, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $E0, $02, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $20, $03, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $70, $03, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $C0, $03, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $20, $04, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $80, $04, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $F0, $04, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $60, $05, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $E0, $05, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $70, $06, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $10, $07, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $C0, $07, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $80, $08, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $50, $09, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $30, $0A, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $30, $0A, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $30, $0A, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $C8, $16, $40, $00, $4C, $1A, $40, $00, + $44, $1C, $40, $00, $5C, $1F, $40, $00, $F8, $22, $40, $00, $38, $23, $40, $00, + $00, $CB, $CC, $C8, $C9, $D7, $CF, $C8, $CD, $CE, $DB, $D8, $DA, $D9, $CA, $DC, + $DD, $DE, $DF, $E0, $E1, $E3, $00, $E4, $E5, $8D, $40, $00, $45, $72, $72, $6F, + $72, $00, $8B, $C0, $52, $75, $6E, $74, $69, $6D, $65, $20, $65, $72, $72, $6F, + $72, $20, $20, $20, $20, $20, $61, $74, $20, $30, $30, $30, $30, $30, $30, $30, + $30, $00, $8B, $C0, $30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $41, $42, + $43, $44, $45, $46, $FF, $FF, $FF, $FF, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $4C, $3E, $40, $00, $E8, $3D, $40, $00, $A4, $3D, $40, $00, $14, $3E, $40, $00, + $11, $42, $E4, $42, $11, $20, $E4, $20, $01, $84, $42, $8C, $00, $00, $00, $00, + $11, $42, $E4, $42, $11, $20, $E4, $20, $01, $84, $42, $8C, $00, $00, $00, $00, + $11, $42, $E4, $42, $11, $20, $E4, $20, $01, $84, $42, $8C, $00, $00, $00, $00, + $11, $42, $E4, $42, $11, $20, $E4, $20, $01, $84, $42, $8C, $00, $00, $00, $00, + $11, $42, $E4, $42, $11, $20, $E4, $20, $01, $84, $42, $8C, $00, $00, $00, $80, + $11, $42, $E4, $42, $11, $20, $E4, $20, $01, $84, $42, $8C, $00, $00, $00, $80, + $11, $42, $E4, $42, $11, $20, $E4, $20, $01, $84, $42, $8C, $00, $00, $00, $80, + $11, $02, $E4, $02, $11, $00, $E4, $00, $01, $04, $42, $0C, $00, $00, $00, $80, + $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, + $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, + $45, $00, $45, $00, $45, $00, $45, $00, $45, $00, $45, $00, $45, $00, $45, $00, + $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, $45, $60, + $00, $00, $00, $80, $E4, $00, $1A, $42, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $0C, $E4, $2C, $00, $04, $E4, $24, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $14, $00, $14, $00, $14, $00, $14, $00, $14, $00, $14, $00, $14, $00, $14, + $00, $14, $00, $14, $00, $14, $00, $14, $00, $14, $00, $14, $00, $14, $00, $14, + $10, $05, $A0, $0D, $10, $05, $A0, $05, $11, $02, $E4, $02, $11, $A2, $E4, $A2, + $11, $42, $E4, $42, $11, $20, $E4, $20, $E3, $42, $E4, $20, $E3, $00, $A0, $01, + $00, $00, $46, $E0, $46, $E0, $46, $E0, $46, $E0, $46, $E0, $46, $E0, $46, $E0, + $00, $80, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $80, + $01, $81, $42, $81, $01, $03, $42, $03, $00, $00, $00, $00, $00, $00, $00, $00, + $01, $04, $42, $0C, $00, $00, $00, $00, $00, $80, $00, $80, $00, $00, $00, $00, + $04, $64, $04, $64, $04, $64, $04, $64, $04, $64, $04, $64, $04, $64, $04, $64, + $45, $6C, $45, $6C, $45, $6C, $45, $6C, $45, $6C, $45, $6C, $45, $6C, $45, $6C, + $10, $45, $A0, $45, $00, $08, $00, $00, $E4, $20, $E4, $20, $10, $45, $A0, $4D, + $00, $00, $00, $00, $00, $08, $00, $00, $00, $00, $00, $04, $00, $00, $00, $00, + $10, $41, $A0, $41, $10, $41, $A0, $41, $00, $84, $00, $84, $00, $00, $00, $80, + $08, $00, $08, $00, $08, $00, $08, $00, $08, $00, $08, $00, $08, $00, $08, $00, + $00, $14, $00, $14, $00, $14, $00, $14, $01, $84, $42, $84, $01, $06, $42, $06, + $00, $1C, $00, $1C, $00, $00, $00, $14, $07, $80, $47, $80, $07, $02, $47, $02, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $08, $00, $08, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $10, $41, $A0, $01, + $18, $01, $20, $01, $E4, $20, $E4, $20, $FF, $FF, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $FF, $FF, $FF, $FF, $FF, $FF, $10, $01, $00, $00, $2D, $05, + $3F, $00, $3F, $02, $3F, $00, $3F, $02, $3F, $00, $3F, $00, $3F, $00, $3F, $02, + $10, $01, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, + $23, $40, $23, $40, $23, $02, $23, $02, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, + $3F, $00, $3F, $02, $2F, $00, $3F, $02, $3D, $00, $3D, $00, $3F, $00, $3F, $00, + $00, $00, $00, $80, $00, $80, $00, $80, $00, $00, $00, $00, $FF, $FF, $FF, $FF, + $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, + $E4, $20, $E4, $20, $E4, $20, $E4, $20, $E4, $20, $E4, $20, $E4, $20, $E4, $20, + $E4, $20, $E4, $20, $E4, $20, $E4, $20, $E4, $20, $E4, $20, $E4, $20, $E4, $20, + $27, $42, $3F, $00, $3F, $00, $3F, $00, $3F, $00, $3F, $00, $3F, $00, $3F, $00, + $3F, $00, $3F, $00, $3F, $00, $3F, $00, $3F, $00, $3F, $00, $3F, $00, $3F, $00, + $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, + $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $65, $00, $ED, $00, + $ED, $04, $A8, $04, $A8, $04, $A8, $04, $ED, $00, $ED, $00, $ED, $00, $00, $00, + $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $65, $02, $ED, $02, + $00, $1C, $00, $1C, $00, $1C, $00, $1C, $00, $1C, $00, $1C, $00, $1C, $00, $1C, + $00, $1C, $00, $1C, $00, $1C, $00, $1C, $00, $1C, $00, $1C, $00, $1C, $00, $1C, + $10, $41, $10, $41, $10, $41, $10, $41, $10, $41, $10, $41, $10, $41, $10, $41, + $10, $41, $10, $41, $10, $41, $10, $41, $10, $41, $10, $41, $10, $41, $10, $41, + $00, $00, $00, $00, $00, $80, $E4, $02, $E4, $47, $E4, $43, $11, $C2, $E4, $C2, + $00, $00, $00, $00, $00, $00, $E4, $42, $E4, $47, $E4, $43, $20, $00, $E4, $20, + $11, $C2, $E4, $C2, $E4, $20, $E4, $42, $E4, $20, $E4, $22, $54, $21, $1C, $21, + $FF, $FF, $FF, $FF, $A0, $05, $E4, $42, $E4, $20, $E4, $20, $54, $21, $1C, $21, + $11, $A2, $E4, $A2, $3F, $04, $24, $02, $65, $04, $AC, $24, $3F, $04, $28, $81, + $05, $60, $05, $60, $05, $60, $05, $60, $05, $60, $05, $60, $05, $60, $05, $60, + $FF, $FF, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $02, $AC, $20, + $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, + $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $3F, $00, $ED, $02, + $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, + $FF, $FF, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, + $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $ED, $00, $00, $00, + $10, $05, $FF, $FF, $10, $41, $10, $41, $10, $81, $10, $81, $10, $81, $10, $81, + $10, $05, $FF, $FF, $10, $41, $10, $41, $10, $81, $10, $81, $10, $81, $10, $81, + $A0, $0D, $FF, $FF, $A0, $41, $A0, $41, $A0, $81, $A0, $81, $A0, $81, $A0, $81, + $A0, $0D, $FF, $FF, $A0, $41, $A0, $41, $A0, $81, $A0, $81, $A0, $81, $A0, $81, + $20, $01, $20, $01, $20, $01, $20, $01, $20, $01, $20, $01, $20, $01, $20, $01, + $36, $00, $36, $00, $30, $00, $30, $00, $36, $00, $36, $00, $36, $00, $36, $00, + $20, $01, $FF, $FF, $20, $01, $20, $01, $10, $01, $18, $01, $10, $01, $18, $01, + $30, $00, $30, $00, $00, $00, $30, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $20, $01, $20, $01, $20, $01, $20, $01, $20, $01, $20, $01, $20, $01, $20, $01, + $36, $00, $36, $00, $36, $00, $36, $00, $FF, $FF, $00, $00, $FF, $FF, $FF, $FF, + $20, $01, $FF, $FF, $20, $01, $20, $01, $FF, $FF, $30, $01, $FF, $FF, $30, $01, + $36, $00, $36, $00, $36, $00, $36, $00, $00, $00, $36, $00, $36, $00, $00, $00, + $28, $01, $28, $01, $28, $01, $28, $01, $28, $01, $28, $01, $28, $01, $28, $01, + $36, $02, $36, $02, $30, $00, $30, $00, $36, $02, $36, $02, $36, $02, $36, $02, + $28, $01, $FF, $FF, $28, $01, $28, $01, $10, $01, $FF, $FF, $10, $01, $18, $01, + $30, $00, $30, $00, $30, $00, $30, $00, $30, $00, $30, $00, $FF, $FF, $FF, $FF, + $18, $01, $18, $01, $18, $01, $18, $01, $18, $01, $18, $01, $18, $01, $18, $01, + $36, $02, $36, $02, $30, $00, $36, $02, $36, $02, $36, $02, $36, $02, $36, $02, + $18, $01, $FF, $FF, $18, $01, $18, $01, $30, $01, $28, $01, $30, $01, $28, $01, + $30, $00, $30, $00, $30, $00, $30, $00, $00, $00, $36, $00, $36, $00, $FF, $FF, + $3C, $46, $40, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $8C, $A0, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FC, $A1, $00, $00, + $44, $A1, $00, $00, $9C, $A0, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $3C, $A2, $00, $00, $54, $A1, $00, $00, $AC, $A0, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $78, $A2, $00, $00, $64, $A1, $00, $00, $EC, $A0, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $72, $A3, $00, $00, $A4, $A1, $00, $00, + $08, $A1, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $CC, $A3, $00, $00, + $C0, $A1, $00, $00, $10, $A1, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $E8, $A3, $00, $00, $C8, $A1, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $0A, $A2, $00, $00, + $1E, $A2, $00, $00, $2E, $A2, $00, $00, $00, $00, $00, $00, $48, $A2, $00, $00, + $5A, $A2, $00, $00, $6A, $A2, $00, $00, $00, $00, $00, $00, $86, $A2, $00, $00, + $90, $A2, $00, $00, $98, $A2, $00, $00, $A6, $A2, $00, $00, $B6, $A2, $00, $00, + $CC, $A2, $00, $00, $DC, $A2, $00, $00, $EE, $A2, $00, $00, $00, $A3, $00, $00, + $0E, $A3, $00, $00, $1C, $A3, $00, $00, $28, $A3, $00, $00, $44, $A3, $00, $00, + $50, $A3, $00, $00, $62, $A3, $00, $00, $00, $00, $00, $00, $80, $A3, $00, $00, + $8E, $A3, $00, $00, $9C, $A3, $00, $00, $A6, $A3, $00, $00, $B2, $A3, $00, $00, + $BE, $A3, $00, $00, $00, $00, $00, $00, $D8, $A3, $00, $00, $00, $00, $00, $00, + $F6, $A3, $00, $00, $08, $A4, $00, $00, $16, $A4, $00, $00, $26, $A4, $00, $00, + $3A, $A4, $00, $00, $4A, $A4, $00, $00, $60, $A4, $00, $00, $72, $A4, $00, $00, + $86, $A4, $00, $00, $9C, $A4, $00, $00, $B6, $A4, $00, $00, $CA, $A4, $00, $00, + $00, $00, $00, $00, $0A, $A2, $00, $00, $1E, $A2, $00, $00, $2E, $A2, $00, $00, + $00, $00, $00, $00, $48, $A2, $00, $00, $5A, $A2, $00, $00, $6A, $A2, $00, $00, + $00, $00, $00, $00, $86, $A2, $00, $00, $90, $A2, $00, $00, $98, $A2, $00, $00, + $A6, $A2, $00, $00, $B6, $A2, $00, $00, $CC, $A2, $00, $00, $DC, $A2, $00, $00, + $EE, $A2, $00, $00, $00, $A3, $00, $00, $0E, $A3, $00, $00, $1C, $A3, $00, $00, + $28, $A3, $00, $00, $44, $A3, $00, $00, $50, $A3, $00, $00, $62, $A3, $00, $00, + $00, $00, $00, $00, $80, $A3, $00, $00, $8E, $A3, $00, $00, $9C, $A3, $00, $00, + $A6, $A3, $00, $00, $B2, $A3, $00, $00, $BE, $A3, $00, $00, $00, $00, $00, $00, + $D8, $A3, $00, $00, $00, $00, $00, $00, $F6, $A3, $00, $00, $08, $A4, $00, $00, + $16, $A4, $00, $00, $26, $A4, $00, $00, $3A, $A4, $00, $00, $4A, $A4, $00, $00, + $60, $A4, $00, $00, $72, $A4, $00, $00, $86, $A4, $00, $00, $9C, $A4, $00, $00, + $B6, $A4, $00, $00, $CA, $A4, $00, $00, $00, $00, $00, $00, $61, $64, $76, $61, + $70, $69, $33, $32, $2E, $64, $6C, $6C, $00, $00, $00, $00, $52, $65, $67, $51, + $75, $65, $72, $79, $56, $61, $6C, $75, $65, $45, $78, $41, $00, $00, $00, $00, + $52, $65, $67, $4F, $70, $65, $6E, $4B, $65, $79, $45, $78, $41, $00, $00, $00, + $52, $65, $67, $43, $6C, $6F, $73, $65, $4B, $65, $79, $00, $75, $73, $65, $72, + $33, $32, $2E, $64, $6C, $6C, $00, $00, $00, $00, $47, $65, $74, $4B, $65, $79, + $62, $6F, $61, $72, $64, $54, $79, $70, $65, $00, $00, $00, $44, $65, $73, $74, + $72, $6F, $79, $57, $69, $6E, $64, $6F, $77, $00, $00, $00, $4D, $65, $73, $73, + $61, $67, $65, $42, $6F, $78, $41, $00, $6B, $65, $72, $6E, $65, $6C, $33, $32, + $2E, $64, $6C, $6C, $00, $00, $00, $00, $47, $65, $74, $41, $43, $50, $00, $00, + $00, $00, $53, $6C, $65, $65, $70, $00, $00, $00, $56, $69, $72, $74, $75, $61, + $6C, $46, $72, $65, $65, $00, $00, $00, $56, $69, $72, $74, $75, $61, $6C, $41, + $6C, $6C, $6F, $63, $00, $00, $00, $00, $47, $65, $74, $43, $75, $72, $72, $65, + $6E, $74, $54, $68, $72, $65, $61, $64, $49, $64, $00, $00, $00, $00, $56, $69, + $72, $74, $75, $61, $6C, $51, $75, $65, $72, $79, $00, $00, $00, $00, $47, $65, + $74, $53, $74, $61, $72, $74, $75, $70, $49, $6E, $66, $6F, $41, $00, $00, $00, + $47, $65, $74, $43, $6F, $6D, $6D, $61, $6E, $64, $4C, $69, $6E, $65, $41, $00, + $00, $00, $46, $72, $65, $65, $4C, $69, $62, $72, $61, $72, $79, $00, $00, $00, + $45, $78, $69, $74, $50, $72, $6F, $63, $65, $73, $73, $00, $00, $00, $57, $72, + $69, $74, $65, $46, $69, $6C, $65, $00, $00, $00, $55, $6E, $68, $61, $6E, $64, + $6C, $65, $64, $45, $78, $63, $65, $70, $74, $69, $6F, $6E, $46, $69, $6C, $74, + $65, $72, $00, $00, $00, $00, $52, $74, $6C, $55, $6E, $77, $69, $6E, $64, $00, + $00, $00, $52, $61, $69, $73, $65, $45, $78, $63, $65, $70, $74, $69, $6F, $6E, + $00, $00, $00, $00, $47, $65, $74, $53, $74, $64, $48, $61, $6E, $64, $6C, $65, + $00, $00, $6B, $65, $72, $6E, $65, $6C, $33, $32, $2E, $64, $6C, $6C, $00, $00, + $00, $00, $54, $6C, $73, $53, $65, $74, $56, $61, $6C, $75, $65, $00, $00, $00, + $54, $6C, $73, $47, $65, $74, $56, $61, $6C, $75, $65, $00, $00, $00, $54, $6C, + $73, $46, $72, $65, $65, $00, $00, $00, $54, $6C, $73, $41, $6C, $6C, $6F, $63, + $00, $00, $00, $00, $4C, $6F, $63, $61, $6C, $46, $72, $65, $65, $00, $00, $00, + $4C, $6F, $63, $61, $6C, $41, $6C, $6C, $6F, $63, $00, $00, $75, $73, $65, $72, + $33, $32, $2E, $64, $6C, $6C, $00, $00, $00, $00, $47, $65, $74, $43, $6C, $61, + $73, $73, $4E, $61, $6D, $65, $41, $00, $6B, $65, $72, $6E, $65, $6C, $33, $32, + $2E, $64, $6C, $6C, $00, $00, $00, $00, $56, $69, $72, $74, $75, $61, $6C, $50, + $72, $6F, $74, $65, $63, $74, $00, $00, $00, $00, $56, $69, $72, $74, $75, $61, + $6C, $46, $72, $65, $65, $00, $00, $00, $56, $69, $72, $74, $75, $61, $6C, $41, + $6C, $6C, $6F, $63, $00, $00, $00, $00, $54, $65, $72, $6D, $69, $6E, $61, $74, + $65, $50, $72, $6F, $63, $65, $73, $73, $00, $00, $00, $00, $4C, $6F, $61, $64, + $4C, $69, $62, $72, $61, $72, $79, $41, $00, $00, $00, $00, $47, $65, $74, $53, + $79, $73, $74, $65, $6D, $44, $69, $72, $65, $63, $74, $6F, $72, $79, $41, $00, + $00, $00, $47, $65, $74, $50, $72, $6F, $63, $41, $64, $64, $72, $65, $73, $73, + $00, $00, $00, $00, $47, $65, $74, $4D, $6F, $64, $75, $6C, $65, $48, $61, $6E, + $64, $6C, $65, $41, $00, $00, $00, $00, $47, $65, $74, $4D, $6F, $64, $75, $6C, + $65, $46, $69, $6C, $65, $4E, $61, $6D, $65, $41, $00, $00, $00, $00, $47, $65, + $74, $45, $6E, $76, $69, $72, $6F, $6E, $6D, $65, $6E, $74, $56, $61, $72, $69, + $61, $62, $6C, $65, $41, $00, $00, $00, $47, $65, $74, $43, $75, $72, $72, $65, + $6E, $74, $50, $72, $6F, $63, $65, $73, $73, $00, $00, $00, $46, $72, $65, $65, + $4C, $69, $62, $72, $61, $72, $79, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $3C, $B0, $00, $00, + $01, $00, $00, $00, $02, $00, $00, $00, $02, $00, $00, $00, $28, $B0, $00, $00, + $30, $B0, $00, $00, $38, $B0, $00, $00, $84, $46, $00, $00, $7C, $46, $00, $00, + $49, $B0, $00, $00, $5A, $B0, $00, $00, $01, $00, $00, $00, $53, $48, $46, $6F, + $6C, $64, $65, $72, $2E, $64, $6C, $6C, $00, $53, $48, $47, $65, $74, $46, $6F, + $6C, $64, $65, $72, $50, $61, $74, $68, $41, $00, $53, $48, $47, $65, $74, $46, + $6F, $6C, $64, $65, $72, $50, $61, $74, $68, $57, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $10, $00, $00, $E0, $00, $00, $00, $02, $30, $0A, $30, $12, $30, $1A, $30, + $22, $30, $2A, $30, $32, $30, $3A, $30, $42, $30, $4A, $30, $52, $30, $5A, $30, + $62, $30, $6A, $30, $72, $30, $9E, $30, $A6, $30, $AE, $30, $B6, $30, $BA, $32, + $D0, $32, $E1, $32, $04, $33, $1E, $33, $34, $33, $43, $33, $4A, $33, $55, $33, + $65, $33, $9A, $33, $A8, $33, $D5, $33, $DD, $33, $E2, $33, $07, $34, $10, $34, + $23, $34, $2E, $34, $39, $34, $48, $34, $61, $34, $B0, $34, $B6, $34, $BC, $34, + $C7, $34, $6C, $35, $D6, $36, $E5, $36, $EC, $36, $76, $37, $A0, $37, $B0, $37, + $BA, $37, $D1, $37, $E6, $37, $F9, $37, $06, $38, $23, $38, $2C, $38, $62, $38, + $6C, $38, $84, $38, $8A, $38, $A2, $38, $BA, $38, $F5, $38, $FF, $38, $16, $39, + $5E, $39, $7B, $39, $87, $39, $9A, $39, $A3, $39, $AA, $39, $B0, $39, $C5, $39, + $D1, $39, $EE, $39, $F7, $39, $35, $3A, $57, $3A, $BF, $3A, $D7, $3A, $11, $3B, + $1B, $3B, $32, $3B, $91, $3B, $CE, $3B, $E7, $3B, $18, $3C, $22, $3C, $28, $3C, + $3F, $3D, $4F, $3D, $59, $3D, $72, $3D, $D8, $3D, $27, $3E, $37, $3E, $41, $3E, + $5C, $3E, $EF, $3E, $FF, $3E, $B2, $3F, $BB, $3F, $CD, $3F, $D9, $3F, $E4, $3F, + $00, $20, $00, $00, $B8, $00, $00, $00, $86, $32, $91, $32, $A0, $32, $B9, $32, + $CC, $32, $E7, $32, $ED, $32, $05, $33, $12, $33, $1A, $33, $23, $33, $31, $33, + $3E, $33, $83, $33, $A3, $33, $30, $35, $BD, $35, $C9, $35, $08, $36, $3D, $36, + $5D, $36, $B4, $36, $0A, $37, $39, $37, $4E, $37, $F6, $37, $57, $38, $6D, $38, + $5B, $39, $61, $39, $7F, $39, $A1, $39, $AC, $39, $7C, $3A, $80, $3A, $86, $3A, + $8A, $3A, $94, $3A, $A7, $3A, $AB, $3A, $B1, $3A, $B5, $3A, $C5, $3A, $CA, $3A, + $EF, $3A, $1A, $3B, $52, $3B, $5A, $3B, $67, $3B, $6D, $3B, $7B, $3B, $8A, $3B, + $97, $3B, $AA, $3B, $C6, $3B, $E7, $3B, $00, $3C, $19, $3C, $2A, $3C, $3F, $3C, + $4C, $3C, $6C, $3C, $AD, $3C, $D4, $3C, $D8, $3C, $DC, $3C, $E0, $3C, $E4, $3C, + $E8, $3C, $EC, $3C, $F0, $3C, $F4, $3C, $DD, $3D, $48, $3E, $92, $3E, $D1, $3E, + $E1, $3E, $F7, $3E, $15, $3F, $2B, $3F, $43, $3F, $58, $3F, $91, $3F, $C2, $3F, + $D6, $3F, $DE, $3F, $F4, $3F, $00, $00, $00, $30, $00, $00, $28, $01, $00, $00, + $0C, $30, $1A, $30, $4E, $30, $6A, $30, $76, $30, $8A, $30, $94, $30, $A7, $30, + $D7, $30, $04, $31, $0D, $31, $3F, $31, $48, $31, $7D, $31, $84, $31, $A6, $31, + $F5, $31, $2A, $32, $9B, $32, $C3, $32, $F3, $33, $1B, $34, $22, $34, $3A, $34, + $5C, $34, $90, $34, $98, $34, $A3, $34, $CF, $34, $D9, $34, $E4, $34, $F5, $34, + $34, $35, $4A, $35, $61, $35, $98, $35, $A8, $35, $AE, $35, $B4, $35, $BA, $35, + $BF, $35, $C5, $35, $CE, $35, $DE, $35, $E3, $35, $E8, $35, $ED, $35, $F2, $35, + $00, $36, $0A, $36, $35, $36, $3E, $36, $45, $36, $60, $36, $68, $36, $94, $36, + $A0, $36, $C4, $36, $CE, $36, $F3, $36, $FD, $36, $07, $37, $0F, $37, $15, $37, + $23, $37, $3E, $37, $53, $37, $5D, $37, $62, $37, $81, $37, $86, $37, $A6, $37, + $BA, $37, $C6, $37, $DF, $37, $29, $38, $32, $38, $37, $38, $59, $38, $66, $38, + $27, $3A, $29, $3C, $3A, $3C, $7A, $3C, $81, $3C, $93, $3C, $B1, $3C, $BA, $3C, + $C6, $3C, $CD, $3C, $FA, $3C, $07, $3D, $13, $3D, $1A, $3D, $24, $3D, $2E, $3D, + $3D, $3D, $4F, $3D, $62, $3D, $6A, $3D, $72, $3D, $7A, $3D, $82, $3D, $8A, $3D, + $B2, $3D, $DC, $3D, $F7, $3D, $01, $3E, $0C, $3E, $1F, $3E, $27, $3E, $3E, $3E, + $5C, $3E, $64, $3E, $72, $3E, $77, $3E, $90, $3E, $A0, $3E, $B1, $3E, $BD, $3E, + $CB, $3E, $D5, $3E, $F3, $3E, $F8, $3E, $06, $3F, $0E, $3F, $16, $3F, $1E, $3F, + $26, $3F, $2E, $3F, $36, $3F, $3E, $3F, $46, $3F, $4E, $3F, $56, $3F, $5E, $3F, + $66, $3F, $7B, $3F, $87, $3F, $8F, $3F, $97, $3F, $AA, $3F, $C3, $3F, $00, $00, + $00, $40, $00, $00, $A0, $00, $00, $00, $3E, $30, $51, $30, $08, $31, $0F, $31, + $33, $31, $37, $31, $3B, $31, $3F, $31, $43, $31, $47, $31, $4B, $31, $4F, $31, + $53, $31, $57, $31, $5B, $31, $D2, $31, $EF, $31, $03, $33, $99, $33, $F7, $34, + $42, $35, $6A, $35, $47, $36, $53, $36, $5A, $36, $6C, $36, $7E, $36, $86, $36, + $96, $36, $DA, $36, $E7, $36, $FF, $36, $05, $37, $0D, $37, $12, $37, $1D, $37, + $22, $37, $27, $37, $32, $37, $3F, $37, $A5, $37, $B7, $37, $C3, $37, $D7, $37, + $28, $38, $4B, $38, $61, $38, $72, $38, $B0, $38, $13, $39, $33, $39, $47, $39, + $54, $39, $60, $39, $6A, $39, $75, $39, $7A, $39, $8C, $39, $05, $3A, $1B, $3A, + $27, $3A, $3B, $3A, $53, $3A, $66, $3A, $78, $3A, $84, $3A, $88, $3A, $94, $3A, + $98, $3A, $AC, $3A, $B0, $3A, $B4, $3A, $B8, $3A, $C4, $3A, $C8, $3A, $D0, $3A, + $00, $50, $00, $00, $34, $00, $00, $00, $02, $30, $14, $30, $1B, $30, $1F, $30, + $25, $30, $29, $30, $2F, $30, $36, $30, $3A, $30, $54, $30, $5D, $30, $66, $30, + $72, $30, $7C, $30, $86, $30, $90, $30, $9A, $30, $A4, $30, $AE, $30, $B6, $30, + $C6, $30, $DB, $30, $00, $60, $00, $00, $30, $00, $00, $00, $24, $30, $44, $30, + $64, $30, $84, $30, $A4, $30, $C4, $30, $E4, $30, $04, $31, $24, $31, $08, $37, + $0C, $37, $10, $37, $14, $37, $18, $37, $1C, $37, $90, $37, $94, $37, $98, $37, + $9C, $37, $E0, $3C, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $92, $BA, $47, $49, $00, $00, $00, $00, $00, $00, $04, $00, + $03, $00, $00, $00, $30, $00, $00, $80, $0A, $00, $00, $00, $48, $00, $00, $80, + $0E, $00, $00, $00, $68, $00, $00, $80, $10, $00, $00, $00, $80, $00, $00, $80, + $00, $00, $00, $00, $92, $BA, $47, $49, $00, $00, $00, $00, $00, $00, $01, $00, + $01, $00, $00, $00, $98, $00, $00, $80, $00, $00, $00, $00, $92, $BA, $47, $49, + $00, $00, $00, $00, $02, $00, $00, $00, $60, $01, $00, $80, $B0, $00, $00, $80, + $6E, $01, $00, $80, $C8, $00, $00, $80, $00, $00, $00, $00, $92, $BA, $47, $49, + $00, $00, $00, $00, $01, $00, $00, $00, $86, $01, $00, $80, $E0, $00, $00, $80, + $00, $00, $00, $00, $92, $BA, $47, $49, $00, $00, $00, $00, $00, $00, $01, $00, + $01, $00, $00, $00, $F8, $00, $00, $80, $00, $00, $00, $00, $92, $BA, $47, $49, + $00, $00, $00, $00, $00, $00, $01, $00, $04, $08, $00, $00, $10, $01, $00, $00, + $00, $00, $00, $00, $92, $BA, $47, $49, $00, $00, $00, $00, $00, $00, $01, $00, + $00, $00, $00, $00, $20, $01, $00, $00, $00, $00, $00, $00, $92, $BA, $47, $49, + $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $30, $01, $00, $00, + $00, $00, $00, $00, $92, $BA, $47, $49, $00, $00, $00, $00, $00, $00, $01, $00, + $04, $08, $00, $00, $40, $01, $00, $00, $00, $00, $00, $00, $92, $BA, $47, $49, + $00, $00, $00, $00, $00, $00, $01, $00, $04, $08, $00, $00, $50, $01, $00, $00, + $98, $D1, $00, $00, $A8, $10, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $40, $E2, $00, $00, $10, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $50, $E2, $00, $00, $88, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $D8, $E2, $00, $00, $14, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $EC, $E2, $00, $00, $94, $02, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $06, $00, $44, $00, $56, $00, $43, $00, $4C, $00, $41, $00, $4C, $00, $0B, $00, + $50, $00, $41, $00, $43, $00, $4B, $00, $41, $00, $47, $00, $45, $00, $49, $00, + $4E, $00, $46, $00, $4F, $00, $08, $00, $4D, $00, $41, $00, $49, $00, $4E, $00, + $49, $00, $43, $00, $4F, $00, $4E, $00, $28, $00, $00, $00, $20, $00, $00, $00, + $40, $00, $00, $00, $01, $00, $20, $00, $00, $00, $00, $00, $00, $10, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $55, $5F, $55, $00, $80, $80, $80, $00, + $AA, $7F, $7F, $00, $80, $80, $80, $00, $80, $80, $80, $00, $80, $80, $80, $00, + $80, $80, $80, $00, $A4, $A0, $A0, $00, $55, $3F, $55, $00, $55, $5F, $55, $00, + $55, $3F, $55, $00, $55, $5F, $2A, $00, $55, $5F, $55, $00, $55, $3F, $55, $00, + $55, $5F, $55, $00, $55, $5F, $55, $00, $55, $3F, $55, $00, $55, $5F, $55, $00, + $55, $3F, $55, $00, $55, $5F, $55, $00, $55, $3F, $55, $00, $55, $5F, $55, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $80, $80, $80, $00, $55, $5F, $55, $00, $80, $80, $80, $00, $55, $5F, $55, $00, + $80, $80, $80, $00, $80, $80, $80, $00, $AA, $7F, $7F, $00, $80, $80, $80, $00, + $AA, $9F, $AA, $00, $55, $5F, $55, $00, $FF, $7F, $7F, $00, $AA, $7F, $55, $00, + $AA, $5F, $55, $00, $AA, $5F, $55, $00, $AA, $5F, $55, $00, $AA, $5F, $55, $00, + $55, $3F, $55, $00, $55, $BF, $D4, $00, $55, $9F, $AA, $00, $55, $9F, $FF, $00, + $00, $BF, $D4, $00, $55, $BF, $FF, $00, $55, $9F, $AA, $00, $55, $5F, $55, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $80, $80, $80, $00, $AA, $7F, $7F, $00, + $55, $7F, $7F, $00, $AA, $7F, $55, $00, $55, $3F, $55, $00, $80, $80, $80, $00, + $55, $5F, $55, $00, $AA, $5F, $7F, $00, $55, $7F, $7F, $00, $AA, $7F, $7F, $00, + $80, $80, $80, $00, $55, $5F, $55, $00, $AA, $7F, $55, $00, $A4, $A0, $A0, $00, + $AA, $7F, $55, $00, $AA, $5F, $55, $00, $AA, $5F, $55, $00, $AA, $7F, $55, $00, + $55, $3F, $55, $00, $55, $9F, $AA, $00, $55, $7F, $AA, $00, $00, $DF, $D4, $00, + $55, $DF, $FF, $00, $00, $BF, $D4, $00, $55, $BF, $D4, $00, $55, $3F, $55, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $80, $80, $80, $00, $80, $80, $80, $00, $AA, $9F, $7F, $00, + $80, $80, $80, $00, $80, $80, $80, $00, $55, $5F, $55, $00, $55, $5F, $55, $00, + $80, $80, $80, $00, $55, $5F, $55, $00, $AA, $7F, $7F, $00, $55, $7F, $7F, $00, + $FF, $BF, $AA, $00, $55, $5F, $7F, $00, $A4, $A0, $A0, $00, $FF, $9F, $7F, $00, + $AA, $5F, $55, $00, $AA, $5F, $55, $00, $AA, $5F, $55, $00, $AA, $5F, $2A, $00, + $55, $5F, $55, $00, $55, $9F, $AA, $00, $55, $9F, $D4, $00, $00, $BF, $FF, $00, + $55, $BF, $D4, $00, $55, $DF, $FF, $00, $00, $9F, $D4, $00, $55, $5F, $55, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $80, $80, $80, $00, $80, $80, $80, $00, $AA, $9F, $7F, $00, $AA, $7F, $7F, $00, + $AA, $7F, $7F, $00, $80, $80, $80, $00, $AA, $7F, $7F, $00, $55, $5F, $55, $00, + $55, $5F, $55, $00, $55, $5F, $55, $00, $55, $7F, $7F, $00, $80, $80, $80, $00, + $AA, $BF, $D4, $00, $55, $5F, $55, $00, $FF, $7F, $7F, $00, $AA, $9F, $7F, $00, + $AA, $7F, $55, $00, $AA, $5F, $2A, $00, $AA, $5F, $55, $00, $AA, $5F, $55, $00, + $55, $3F, $55, $00, $AA, $9F, $AA, $00, $55, $9F, $AA, $00, $AA, $BF, $D4, $00, + $00, $BF, $FF, $00, $00, $BF, $FF, $00, $55, $DF, $D4, $00, $55, $3F, $55, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $55, $7F, $7F, $00, + $80, $80, $80, $00, $FF, $9F, $7F, $00, $AA, $9F, $AA, $00, $AA, $9F, $7F, $00, + $AA, $9F, $7F, $00, $AA, $7F, $7F, $00, $80, $80, $80, $00, $80, $80, $80, $00, + $80, $80, $80, $00, $AA, $9F, $AA, $00, $55, $9F, $D4, $00, $AA, $BF, $D4, $00, + $FF, $FF, $FF, $00, $55, $5F, $7F, $00, $AA, $9F, $55, $00, $FF, $9F, $AA, $00, + $AA, $5F, $55, $00, $AA, $5F, $55, $00, $AA, $5F, $55, $00, $AA, $5F, $55, $00, + $55, $5F, $55, $00, $55, $BF, $AA, $00, $00, $9F, $D4, $00, $55, $DF, $FF, $00, + $AA, $DF, $D4, $00, $55, $DF, $FF, $00, $00, $9F, $D4, $00, $55, $5F, $55, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $80, $80, $80, $00, $AA, $9F, $7F, $00, + $AA, $9F, $7F, $00, $A4, $A0, $A0, $00, $FF, $9F, $7F, $00, $AA, $9F, $7F, $00, + $A4, $A0, $A0, $00, $80, $80, $80, $00, $AA, $7F, $AA, $00, $55, $9F, $AA, $00, + $55, $7F, $AA, $00, $55, $9F, $AA, $00, $AA, $9F, $AA, $00, $55, $9F, $D4, $00, + $AA, $BF, $D4, $00, $55, $7F, $55, $00, $55, $3F, $55, $00, $55, $3F, $55, $00, + $55, $5F, $55, $00, $55, $3F, $55, $00, $55, $5F, $55, $00, $55, $5F, $2A, $00, + $55, $3F, $55, $00, $55, $3F, $55, $00, $55, $5F, $55, $00, $55, $3F, $55, $00, + $55, $5F, $55, $00, $00, $3F, $55, $00, $55, $3F, $55, $00, $55, $5F, $55, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $80, $80, $80, $00, $FF, $9F, $AA, $00, + $AA, $BF, $7F, $00, $FF, $9F, $7F, $00, $AA, $9F, $7F, $00, $FF, $9F, $AA, $00, + $80, $80, $80, $00, $55, $9F, $AA, $00, $55, $9F, $AA, $00, $55, $7F, $AA, $00, + $55, $5F, $AA, $00, $00, $3F, $7F, $00, $00, $3F, $55, $00, $55, $3F, $55, $00, + $AA, $9F, $D4, $00, $55, $5F, $55, $00, $55, $9F, $D4, $00, $55, $9F, $FF, $00, + $00, $1F, $AA, $00, $55, $3F, $D4, $00, $00, $3F, $D4, $00, $FF, $7F, $7F, $00, + $00, $5F, $55, $00, $AA, $BF, $AA, $00, $55, $7F, $55, $00, $55, $9F, $55, $00, + $55, $BF, $7F, $00, $55, $BF, $AA, $00, $55, $BF, $55, $00, $55, $3F, $55, $00, + $00, $00, $00, $00, $80, $80, $80, $00, $A4, $A0, $A0, $00, $A4, $A0, $A0, $00, + $FF, $9F, $AA, $00, $FF, $BF, $7F, $00, $A4, $A0, $A0, $00, $A4, $A0, $A0, $00, + $80, $80, $80, $00, $55, $9F, $D4, $00, $55, $7F, $D4, $00, $55, $3F, $7F, $00, + $C0, $DC, $C0, $00, $80, $80, $80, $00, $AA, $9F, $AA, $00, $AA, $7F, $AA, $00, + $C0, $DC, $C0, $00, $AA, $5F, $55, $00, $00, $7F, $FF, $00, $55, $7F, $D4, $00, + $55, $5F, $D4, $00, $00, $3F, $AA, $00, $55, $3F, $D4, $00, $00, $3F, $AA, $00, + $55, $3F, $55, $00, $55, $9F, $55, $00, $55, $9F, $55, $00, $55, $BF, $7F, $00, + $55, $BF, $AA, $00, $55, $BF, $7F, $00, $55, $9F, $55, $00, $55, $3F, $55, $00, + $00, $00, $00, $00, $80, $80, $80, $00, $FF, $9F, $AA, $00, $C0, $DC, $C0, $00, + $FF, $9F, $AA, $00, $A4, $A0, $A0, $00, $FF, $BF, $AA, $00, $80, $80, $80, $00, + $55, $7F, $D4, $00, $55, $9F, $AA, $00, $55, $5F, $AA, $00, $00, $3F, $7F, $00, + $C0, $DC, $C0, $00, $FF, $BF, $D4, $00, $55, $9F, $AA, $00, $AA, $9F, $AA, $00, + $C0, $DC, $C0, $00, $55, $5F, $7F, $00, $55, $7F, $D4, $00, $55, $9F, $D4, $00, + $00, $1F, $D4, $00, $55, $3F, $D4, $00, $00, $5F, $D4, $00, $55, $1F, $AA, $00, + $55, $5F, $55, $00, $AA, $BF, $AA, $00, $00, $7F, $55, $00, $55, $BF, $7F, $00, + $55, $BF, $AA, $00, $55, $BF, $7F, $00, $55, $9F, $7F, $00, $55, $5F, $55, $00, + $AA, $7F, $7F, $00, $AA, $9F, $AA, $00, $C0, $DC, $C0, $00, $F0, $CA, $A6, $00, + $C0, $DC, $C0, $00, $FF, $BF, $AA, $00, $A4, $A0, $A0, $00, $55, $7F, $AA, $00, + $00, $7F, $D4, $00, $55, $7F, $D4, $00, $00, $5F, $AA, $00, $00, $3F, $55, $00, + $FF, $CC, $FF, $00, $C0, $DC, $C0, $00, $55, $5F, $7F, $00, $00, $3F, $55, $00, + $A4, $A0, $A0, $00, $55, $5F, $7F, $00, $55, $9F, $D4, $00, $00, $7F, $D4, $00, + $55, $5F, $D4, $00, $00, $3F, $D4, $00, $00, $3F, $D4, $00, $AA, $7F, $AA, $00, + $55, $3F, $55, $00, $55, $BF, $AA, $00, $55, $9F, $55, $00, $55, $9F, $55, $00, + $55, $BF, $AA, $00, $55, $BF, $7F, $00, $55, $BF, $7F, $00, $55, $3F, $55, $00, + $80, $80, $80, $00, $A4, $A0, $A0, $00, $FF, $DF, $D4, $00, $FF, $BF, $D4, $00, + $F0, $CA, $A6, $00, $C0, $DC, $C0, $00, $AA, $9F, $AA, $00, $00, $5F, $AA, $00, + $55, $7F, $D4, $00, $00, $5F, $D4, $00, $55, $5F, $AA, $00, $00, $3F, $55, $00, + $FF, $DF, $D4, $00, $AA, $BF, $D4, $00, $55, $5F, $7F, $00, $00, $3F, $7F, $00, + $AA, $BF, $D4, $00, $55, $5F, $55, $00, $55, $9F, $D4, $00, $55, $7F, $D4, $00, + $00, $1F, $D4, $00, $55, $3F, $AA, $00, $55, $5F, $D4, $00, $00, $3F, $D4, $00, + $55, $5F, $55, $00, $80, $80, $80, $00, $55, $7F, $55, $00, $55, $BF, $7F, $00, + $55, $BF, $7F, $00, $55, $BF, $AA, $00, $55, $BF, $7F, $00, $55, $5F, $2A, $00, + $80, $80, $80, $00, $C0, $DC, $C0, $00, $FF, $FF, $FF, $00, $FF, $DF, $D4, $00, + $C0, $DC, $C0, $00, $FF, $DF, $FF, $00, $80, $80, $80, $00, $00, $5F, $D4, $00, + $00, $5F, $AA, $00, $55, $5F, $AA, $00, $00, $5F, $AA, $00, $00, $1F, $7F, $00, + $C0, $DC, $C0, $00, $AA, $BF, $D4, $00, $55, $3F, $55, $00, $55, $5F, $AA, $00, + $AA, $BF, $D4, $00, $AA, $9F, $AA, $00, $55, $5F, $7F, $00, $55, $5F, $55, $00, + $55, $5F, $55, $00, $55, $5F, $7F, $00, $55, $5F, $55, $00, $55, $5F, $55, $00, + $55, $5F, $7F, $00, $55, $5F, $55, $00, $55, $5F, $55, $00, $55, $5F, $7F, $00, + $55, $5F, $55, $00, $55, $5F, $55, $00, $55, $5F, $55, $00, $AA, $9F, $AA, $00, + $80, $80, $80, $00, $FF, $FF, $FF, $00, $FF, $DF, $D4, $00, $C0, $DC, $C0, $00, + $FF, $BF, $D4, $00, $C0, $DC, $C0, $00, $55, $5F, $AA, $00, $00, $5F, $AA, $00, + $55, $5F, $D4, $00, $00, $5F, $AA, $00, $55, $3F, $AA, $00, $00, $3F, $55, $00, + $FF, $DF, $D4, $00, $A4, $A0, $A0, $00, $00, $5F, $7F, $00, $00, $3F, $7F, $00, + $55, $7F, $D4, $00, $AA, $DF, $D4, $00, $AA, $BF, $D4, $00, $AA, $9F, $D4, $00, + $C0, $DC, $C0, $00, $FF, $DF, $FF, $00, $AA, $BF, $D4, $00, $AA, $9F, $AA, $00, + $AA, $BF, $D4, $00, $AA, $DF, $FF, $00, $FF, $FF, $FF, $00, $C0, $DC, $C0, $00, + $FF, $BF, $D4, $00, $AA, $9F, $AA, $00, $AA, $9F, $7F, $00, $AA, $9F, $AA, $00, + $55, $7F, $7F, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $DF, $D4, $00, $00, $3F, $AA, $00, $55, $3F, $AA, $00, + $00, $5F, $AA, $00, $00, $5F, $AA, $00, $00, $5F, $AA, $00, $55, $1F, $55, $00, + $AA, $DF, $FF, $00, $A4, $A0, $A0, $00, $55, $3F, $55, $00, $55, $5F, $AA, $00, + $00, $5F, $AA, $00, $55, $7F, $D4, $00, $55, $7F, $D4, $00, $00, $80, $80, $00, + $55, $5F, $AA, $00, $C0, $DC, $C0, $00, $80, $80, $80, $00, $55, $3F, $55, $00, + $55, $7F, $D4, $00, $55, $BF, $D4, $00, $AA, $9F, $D4, $00, $55, $9F, $AA, $00, + $80, $80, $80, $00, $AA, $9F, $7F, $00, $A4, $A0, $A0, $00, $80, $80, $80, $00, + $AA, $7F, $7F, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $C0, $DC, $C0, $00, $00, $5F, $AA, $00, $00, $3F, $AA, $00, + $55, $3F, $AA, $00, $00, $3F, $AA, $00, $00, $3F, $AA, $00, $00, $3F, $55, $00, + $FF, $DF, $D4, $00, $AA, $BF, $AA, $00, $00, $3F, $7F, $00, $00, $3F, $7F, $00, + $55, $7F, $D4, $00, $55, $5F, $AA, $00, $00, $7F, $D4, $00, $55, $3F, $7F, $00, + $55, $5F, $7F, $00, $C0, $DC, $C0, $00, $AA, $9F, $AA, $00, $00, $3F, $55, $00, + $55, $7F, $AA, $00, $AA, $9F, $D4, $00, $55, $BF, $D4, $00, $AA, $7F, $AA, $00, + $80, $80, $80, $00, $AA, $9F, $7F, $00, $80, $80, $80, $00, $AA, $9F, $AA, $00, + $55, $7F, $7F, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $C0, $DC, $C0, $00, $55, $3F, $7F, $00, $00, $3F, $AA, $00, + $00, $5F, $AA, $00, $55, $5F, $AA, $00, $55, $5F, $AA, $00, $00, $1F, $55, $00, + $C0, $DC, $C0, $00, $AA, $9F, $D4, $00, $55, $5F, $55, $00, $00, $3F, $AA, $00, + $55, $5F, $AA, $00, $00, $7F, $D4, $00, $55, $5F, $AA, $00, $00, $5F, $7F, $00, + $55, $5F, $AA, $00, $C0, $DC, $C0, $00, $AA, $7F, $AA, $00, $00, $3F, $7F, $00, + $55, $7F, $AA, $00, $55, $9F, $D4, $00, $55, $9F, $D4, $00, $80, $80, $80, $00, + $80, $80, $80, $00, $80, $80, $80, $00, $AA, $7F, $AA, $00, $80, $80, $80, $00, + $AA, $7F, $7F, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $00, $5F, $AA, $00, $55, $5F, $7F, $00, + $00, $5F, $AA, $00, $55, $7F, $AA, $00, $00, $3F, $7F, $00, $00, $3F, $7F, $00, + $FF, $DF, $D4, $00, $A4, $A0, $A0, $00, $00, $3F, $7F, $00, $55, $3F, $7F, $00, + $00, $5F, $AA, $00, $00, $5F, $D4, $00, $55, $5F, $AA, $00, $00, $3F, $7F, $00, + $80, $80, $80, $00, $AA, $BF, $D4, $00, $80, $80, $80, $00, $55, $3F, $7F, $00, + $00, $7F, $AA, $00, $55, $9F, $D4, $00, $55, $9F, $FF, $00, $80, $80, $80, $00, + $55, $5F, $55, $00, $80, $80, $80, $00, $80, $80, $80, $00, $80, $80, $80, $00, + $55, $7F, $7F, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $AA, $9F, $AA, $00, $55, $5F, $AA, $00, + $55, $5F, $D4, $00, $AA, $9F, $D4, $00, $55, $5F, $AA, $00, $00, $1F, $55, $00, + $FF, $DF, $D4, $00, $A4, $A0, $A0, $00, $55, $3F, $7F, $00, $00, $3F, $7F, $00, + $00, $5F, $AA, $00, $55, $5F, $AA, $00, $00, $3F, $AA, $00, $00, $1F, $55, $00, + $AA, $7F, $D4, $00, $C0, $DC, $C0, $00, $55, $7F, $7F, $00, $00, $3F, $55, $00, + $55, $7F, $D4, $00, $55, $7F, $D4, $00, $80, $80, $80, $00, $55, $7F, $7F, $00, + $80, $80, $80, $00, $AA, $7F, $55, $00, $80, $80, $80, $00, $80, $80, $80, $00, + $80, $80, $80, $00, $FF, $DF, $D4, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $C0, $DC, $C0, $00, $55, $9F, $AA, $00, + $C0, $DC, $C0, $00, $55, $7F, $AA, $00, $55, $5F, $AA, $00, $00, $1F, $55, $00, + $C0, $DC, $C0, $00, $AA, $9F, $AA, $00, $55, $3F, $55, $00, $00, $00, $80, $00, + $00, $5F, $AA, $00, $00, $3F, $7F, $00, $00, $3F, $55, $00, $55, $5F, $7F, $00, + $C0, $DC, $C0, $00, $AA, $9F, $D4, $00, $55, $3F, $7F, $00, $00, $3F, $AA, $00, + $55, $7F, $AA, $00, $00, $7F, $D4, $00, $55, $7F, $AA, $00, $55, $3F, $55, $00, + $55, $5F, $55, $00, $55, $5F, $7F, $00, $55, $7F, $55, $00, $AA, $7F, $7F, $00, + $80, $80, $80, $00, $C0, $DC, $C0, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $CC, $FF, $00, + $AA, $BF, $AA, $00, $55, $5F, $AA, $00, $00, $3F, $7F, $00, $00, $1F, $55, $00, + $FF, $CC, $FF, $00, $C0, $DC, $C0, $00, $00, $3F, $7F, $00, $00, $1F, $55, $00, + $00, $1F, $55, $00, $00, $1F, $55, $00, $55, $5F, $AA, $00, $FF, $BF, $D4, $00, + $C0, $DC, $C0, $00, $80, $80, $80, $00, $00, $3F, $55, $00, $00, $5F, $AA, $00, + $00, $7F, $D4, $00, $55, $5F, $D4, $00, $80, $80, $80, $00, $80, $80, $80, $00, + $55, $5F, $55, $00, $55, $5F, $55, $00, $AA, $5F, $7F, $00, $55, $7F, $55, $00, + $80, $80, $80, $00, $80, $80, $80, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $55, $9F, $D4, $00, $55, $7F, $AA, $00, $55, $5F, $7F, $00, $00, $1F, $55, $00, + $C0, $DC, $C0, $00, $C0, $DC, $C0, $00, $AA, $9F, $AA, $00, $80, $80, $80, $00, + $55, $7F, $AA, $00, $FF, $BF, $AA, $00, $AA, $BF, $D4, $00, $C0, $DC, $C0, $00, + $AA, $7F, $AA, $00, $00, $1F, $7F, $00, $00, $3F, $AA, $00, $55, $5F, $AA, $00, + $00, $5F, $AA, $00, $55, $7F, $AA, $00, $80, $80, $80, $00, $55, $7F, $55, $00, + $AA, $5F, $55, $00, $55, $5F, $7F, $00, $80, $80, $80, $00, $80, $80, $80, $00, + $00, $00, $00, $00, $80, $80, $80, $00, $C0, $DC, $C0, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $AA, $BF, $AA, $00, $55, $5F, $AA, $00, $00, $3F, $7F, $00, $00, $1F, $55, $00, + $FF, $FF, $FF, $00, $FF, $DF, $D4, $00, $FF, $CC, $FF, $00, $C0, $DC, $C0, $00, + $FF, $DF, $D4, $00, $AA, $BF, $D4, $00, $AA, $9F, $AA, $00, $55, $3F, $7F, $00, + $00, $1F, $55, $00, $00, $3F, $7F, $00, $55, $5F, $AA, $00, $00, $5F, $AA, $00, + $55, $7F, $AA, $00, $80, $80, $80, $00, $AA, $9F, $7F, $00, $AA, $5F, $7F, $00, + $80, $80, $80, $00, $55, $5F, $55, $00, $80, $80, $80, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $80, $80, $80, $00, $80, $80, $80, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $AA, $9F, $AA, $00, $00, $3F, $7F, $00, $00, $3F, $55, $00, + $00, $1F, $55, $00, $00, $1F, $55, $00, $00, $1F, $55, $00, $00, $1F, $55, $00, + $00, $1F, $55, $00, $00, $1F, $55, $00, $00, $1F, $55, $00, $00, $3F, $7F, $00, + $00, $3F, $7F, $00, $00, $3F, $AA, $00, $00, $3F, $AA, $00, $00, $5F, $AA, $00, + $AA, $7F, $AA, $00, $AA, $9F, $7F, $00, $80, $80, $80, $00, $AA, $9F, $7F, $00, + $AA, $7F, $7F, $00, $80, $80, $80, $00, $55, $7F, $55, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $80, $80, $80, $00, $A4, $A0, $A0, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $AA, $9F, $AA, $00, $55, $3F, $7F, $00, + $00, $3F, $7F, $00, $00, $1F, $7F, $00, $00, $3F, $55, $00, $00, $1F, $7F, $00, + $00, $3F, $55, $00, $00, $1F, $7F, $00, $00, $3F, $7F, $00, $00, $3F, $7F, $00, + $00, $3F, $AA, $00, $00, $3F, $AA, $00, $55, $5F, $7F, $00, $AA, $9F, $AA, $00, + $AA, $9F, $7F, $00, $AA, $9F, $7F, $00, $AA, $9F, $7F, $00, $80, $80, $80, $00, + $AA, $9F, $7F, $00, $80, $80, $80, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $80, $80, $80, $00, $80, $80, $80, $00, + $FF, $DF, $D4, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $C0, $DC, $C0, $00, + $80, $80, $80, $00, $00, $5F, $7F, $00, $55, $3F, $7F, $00, $00, $3F, $7F, $00, + $00, $3F, $7F, $00, $00, $3F, $7F, $00, $00, $3F, $7F, $00, $55, $3F, $AA, $00, + $55, $5F, $7F, $00, $80, $80, $80, $00, $AA, $BF, $D4, $00, $FF, $9F, $7F, $00, + $AA, $9F, $AA, $00, $FF, $9F, $7F, $00, $AA, $9F, $AA, $00, $AA, $7F, $7F, $00, + $80, $80, $80, $00, $80, $80, $80, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $80, $80, $80, $00, + $80, $80, $80, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $DF, $FF, $00, $C0, $DC, $C0, $00, $AA, $BF, $AA, $00, + $AA, $9F, $AA, $00, $A4, $A0, $A0, $00, $AA, $9F, $D4, $00, $AA, $BF, $AA, $00, + $C0, $DC, $C0, $00, $C0, $DC, $C0, $00, $FF, $9F, $AA, $00, $AA, $BF, $7F, $00, + $FF, $9F, $7F, $00, $AA, $9F, $7F, $00, $AA, $9F, $7F, $00, $AA, $9F, $7F, $00, + $80, $80, $80, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $80, $80, $80, $00, $80, $80, $80, $00, $FF, $DF, $D4, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $DF, $D4, $00, $C0, $DC, $C0, $00, $FF, $CC, $FF, $00, + $F0, $CA, $A6, $00, $F0, $CA, $A6, $00, $AA, $BF, $AA, $00, $FF, $9F, $AA, $00, + $AA, $BF, $AA, $00, $FF, $9F, $7F, $00, $80, $80, $80, $00, $80, $80, $80, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $80, $80, $80, $00, $80, $80, $80, $00, $A4, $A0, $A0, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $DF, $D4, $00, $FF, $DF, $D4, $00, + $C0, $DC, $C0, $00, $FF, $CC, $CC, $00, $FF, $BF, $AA, $00, $AA, $BF, $AA, $00, + $FF, $9F, $7F, $00, $80, $80, $80, $00, $80, $80, $80, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $80, $80, $80, $00, $80, $80, $80, $00, + $80, $80, $80, $00, $C0, $DC, $C0, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $C0, $DC, $C0, $00, + $FF, $BF, $D4, $00, $C0, $DC, $C0, $00, $FF, $BF, $AA, $00, $AA, $9F, $AA, $00, + $80, $80, $80, $00, $80, $80, $80, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $80, $80, $80, $00, $80, $80, $80, $00, $80, $80, $80, $00, $A4, $A0, $A0, $00, + $C0, $DC, $C0, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, + $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $FF, $FF, $00, $FF, $CC, $CC, $00, + $C0, $DC, $C0, $00, $A4, $A0, $A0, $00, $80, $80, $80, $00, $80, $80, $80, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $80, $80, $80, $00, $80, $80, $80, $00, + $80, $80, $80, $00, $80, $80, $80, $00, $80, $80, $80, $00, $80, $80, $80, $00, + $80, $80, $80, $00, $80, $80, $80, $00, $80, $80, $80, $00, $80, $80, $80, $00, + $80, $80, $80, $00, $80, $80, $80, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $FF, $C0, $00, $00, $FF, $00, $00, $00, $FC, $00, $00, $00, $F8, $00, $00, $00, + $F0, $00, $00, $00, $E0, $00, $00, $00, $C0, $00, $00, $00, $C0, $00, $00, $00, + $80, $00, $00, $00, $80, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $80, $00, $00, $01, $80, $00, $00, $01, + $C0, $00, $00, $03, $C0, $00, $00, $03, $E0, $00, $00, $07, $F0, $00, $00, $0F, + $F8, $00, $00, $1F, $FC, $00, $00, $3F, $FF, $00, $00, $FF, $FF, $C0, $03, $FF, + $26, $3D, $4F, $38, $C2, $82, $37, $B8, $F3, $24, $42, $03, $17, $9B, $3A, $83, + $00, $00, $10, $8C, $00, $00, $00, $00, $0B, $00, $00, $00, $01, $54, $53, $48, + $46, $6F, $6C, $64, $65, $72, $00, $1C, $4B, $57, $69, $6E, $64, $6F, $77, $73, + $00, $10, $55, $54, $79, $70, $65, $73, $00, $00, $81, $53, $79, $73, $49, $6E, + $69, $74, $00, $00, $C7, $53, $79, $73, $74, $65, $6D, $00, $00, $4E, $48, $65, + $6C, $70, $65, $72, $55, $74, $69, $6C, $73, $00, $00, $43, $57, $69, $6E, $64, + $6F, $77, $55, $74, $69, $6C, $73, $00, $00, $3F, $49, $70, $63, $55, $69, $6C, + $73, $00, $00, $15, $44, $65, $6C, $55, $74, $69, $6C, $73, $00, $00, $82, $41, + $70, $69, $55, $74, $69, $6C, $73, $00, $00, $CC, $53, $68, $65, $6C, $6C, $55, + $74, $69, $6C, $73, $00, $00, $00, $00, $00, $00, $01, $00, $01, $00, $20, $20, + $20, $00, $01, $00, $20, $00, $A8, $10, $00, $00, $01, $00, $94, $02, $34, $00, + $00, $00, $56, $00, $53, $00, $5F, $00, $56, $00, $45, $00, $52, $00, $53, $00, + $49, $00, $4F, $00, $4E, $00, $5F, $00, $49, $00, $4E, $00, $46, $00, $4F, $00, + $00, $00, $00, $00, $BD, $04, $EF, $FE, $00, $00, $01, $00, $00, $00, $18, $00, + $42, $22, $94, $5F, $00, $00, $18, $00, $42, $22, $94, $5F, $3F, $00, $00, $00, + $00, $00, $00, $00, $04, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $F2, $01, $00, $00, $00, $00, $53, $00, + $74, $00, $72, $00, $69, $00, $6E, $00, $67, $00, $46, $00, $69, $00, $6C, $00, + $65, $00, $49, $00, $6E, $00, $66, $00, $6F, $00, $00, $00, $CE, $01, $00, $00, + $00, $00, $30, $00, $34, $00, $30, $00, $39, $00, $30, $00, $34, $00, $45, $00, + $34, $00, $00, $00, $22, $00, $01, $00, $01, $00, $43, $00, $6F, $00, $6D, $00, + $70, $00, $61, $00, $6E, $00, $79, $00, $4E, $00, $61, $00, $6D, $00, $65, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $2A, $00, $01, $00, $01, $00, $46, $00, + $69, $00, $6C, $00, $65, $00, $44, $00, $65, $00, $73, $00, $63, $00, $72, $00, + $69, $00, $70, $00, $74, $00, $69, $00, $6F, $00, $6E, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $40, $00, $10, $00, $01, $00, $46, $00, $69, $00, $6C, $00, + $65, $00, $56, $00, $65, $00, $72, $00, $73, $00, $69, $00, $6F, $00, $6E, $00, + $00, $00, $00, $00, $32, $00, $34, $00, $2E, $00, $30, $00, $2E, $00, $32, $00, + $34, $00, $34, $00, $36, $00, $38, $00, $2E, $00, $38, $00, $37, $00, $37, $00, + $30, $00, $00, $00, $22, $00, $01, $00, $01, $00, $49, $00, $6E, $00, $74, $00, + $65, $00, $72, $00, $6E, $00, $61, $00, $6C, $00, $4E, $00, $61, $00, $6D, $00, + $65, $00, $00, $00, $00, $00, $00, $00, $26, $00, $01, $00, $01, $00, $4C, $00, + $65, $00, $67, $00, $61, $00, $6C, $00, $43, $00, $6F, $00, $70, $00, $79, $00, + $72, $00, $69, $00, $67, $00, $68, $00, $74, $00, $00, $00, $00, $00, $00, $00, + $2A, $00, $01, $00, $01, $00, $4C, $00, $65, $00, $67, $00, $61, $00, $6C, $00, + $54, $00, $72, $00, $61, $00, $64, $00, $65, $00, $6D, $00, $61, $00, $72, $00, + $6B, $00, $73, $00, $00, $00, $00, $00, $00, $00, $00, $00, $2A, $00, $01, $00, + $01, $00, $4F, $00, $72, $00, $69, $00, $67, $00, $69, $00, $6E, $00, $61, $00, + $6C, $00, $46, $00, $69, $00, $6C, $00, $65, $00, $6E, $00, $61, $00, $6D, $00, + $65, $00, $00, $00, $00, $00, $00, $00, $22, $00, $01, $00, $01, $00, $50, $00, + $72, $00, $6F, $00, $64, $00, $75, $00, $63, $00, $74, $00, $4E, $00, $61, $00, + $6D, $00, $65, $00, $00, $00, $00, $00, $00, $00, $00, $00, $44, $00, $10, $00, + $01, $00, $50, $00, $72, $00, $6F, $00, $64, $00, $75, $00, $63, $00, $74, $00, + $56, $00, $65, $00, $72, $00, $73, $00, $69, $00, $6F, $00, $6E, $00, $00, $00, + $32, $00, $34, $00, $2E, $00, $30, $00, $2E, $00, $32, $00, $34, $00, $34, $00, + $36, $00, $38, $00, $2E, $00, $38, $00, $37, $00, $37, $00, $30, $00, $00, $00, + $1A, $00, $01, $00, $01, $00, $43, $00, $6F, $00, $6D, $00, $6D, $00, $65, $00, + $6E, $00, $74, $00, $73, $00, $00, $00, $00, $00, $00, $00, $44, $00, $00, $00, + $00, $00, $56, $00, $61, $00, $72, $00, $46, $00, $69, $00, $6C, $00, $65, $00, + $49, $00, $6E, $00, $66, $00, $6F, $00, $00, $00, $00, $00, $24, $00, $04, $00, + $00, $00, $54, $00, $72, $00, $61, $00, $6E, $00, $73, $00, $6C, $00, $61, $00, + $74, $00, $69, $00, $6F, $00, $6E, $00, $00, $00, $00, $00, $09, $04, $E4, $04, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $E0, $1B, $00, $00, $00, $02, $02, $00, $30, $82, $1B, $D3, $06, $09, $2A, $86, + $48, $86, $F7, $0D, $01, $07, $02, $A0, $82, $1B, $C4, $30, $82, $1B, $C0, $02, + $01, $01, $31, $0B, $30, $09, $06, $05, $2B, $0E, $03, $02, $1A, $05, $00, $30, + $4C, $06, $0A, $2B, $06, $01, $04, $01, $82, $37, $02, $01, $04, $A0, $3E, $30, + $3C, $30, $17, $06, $0A, $2B, $06, $01, $04, $01, $82, $37, $02, $01, $0F, $30, + $09, $03, $01, $00, $A0, $04, $A2, $02, $80, $00, $30, $21, $30, $09, $06, $05, + $2B, $0E, $03, $02, $1A, $05, $00, $04, $14, $9C, $F1, $7A, $AD, $38, $CA, $35, + $C7, $5E, $AD, $82, $96, $90, $27, $CB, $0A, $96, $2F, $22, $75, $A0, $82, $02, + $34, $30, $82, $02, $30, $30, $82, $01, $99, $A0, $03, $02, $01, $02, $02, $10, + $E5, $12, $72, $FF, $29, $21, $49, $AA, $40, $3F, $BA, $86, $59, $82, $F0, $19, + $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $01, $04, $05, $00, $30, + $2B, $31, $29, $30, $27, $06, $03, $55, $04, $03, $13, $20, $53, $75, $70, $65, + $72, $20, $52, $6F, $6F, $74, $20, $43, $65, $72, $74, $69, $66, $69, $63, $61, + $74, $65, $20, $41, $75, $74, $68, $6F, $72, $69, $74, $79, $30, $1E, $17, $0D, + $30, $38, $30, $38, $30, $37, $31, $36, $30, $30, $30, $30, $5A, $17, $0D, $31, + $38, $30, $38, $30, $37, $31, $36, $30, $30, $30, $30, $5A, $30, $20, $31, $1E, + $30, $1C, $06, $03, $55, $04, $03, $13, $15, $53, $75, $70, $65, $72, $20, $43, + $6F, $64, $65, $20, $53, $69, $67, $6E, $69, $6E, $67, $20, $43, $41, $30, $81, + $9F, $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $01, $01, $05, $00, + $03, $81, $8D, $00, $30, $81, $89, $02, $81, $81, $00, $E0, $22, $E2, $AD, $27, + $3C, $C7, $6A, $A3, $00, $EB, $BB, $C5, $8E, $05, $11, $95, $36, $AB, $AC, $6C, + $AC, $58, $59, $A3, $66, $79, $F5, $45, $C0, $8C, $9B, $4F, $C8, $E5, $C7, $2E, + $23, $84, $66, $27, $4B, $7D, $D0, $C9, $4D, $EF, $F9, $CF, $B8, $C8, $58, $00, + $BE, $A8, $C5, $1C, $77, $91, $DD, $87, $C2, $53, $40, $74, $C6, $66, $8A, $3B, + $F2, $59, $44, $B6, $17, $CC, $8F, $0C, $B1, $E8, $CE, $79, $E6, $28, $12, $DC, + $DC, $10, $5A, $3D, $57, $64, $34, $0F, $E6, $5A, $75, $B7, $B6, $D6, $06, $E1, + $90, $AB, $38, $9C, $DC, $BE, $F1, $40, $5E, $9E, $C9, $8F, $99, $AB, $56, $AF, + $70, $A2, $E0, $02, $AD, $8C, $5F, $A9, $03, $6B, $CB, $02, $03, $01, $00, $01, + $A3, $60, $30, $5E, $30, $5C, $06, $03, $55, $1D, $01, $04, $55, $30, $53, $80, + $10, $59, $B9, $6A, $ED, $D1, $EA, $C9, $C7, $5D, $AA, $88, $E5, $11, $77, $36, + $33, $A1, $2D, $30, $2B, $31, $29, $30, $27, $06, $03, $55, $04, $03, $13, $20, + $53, $75, $70, $65, $72, $20, $52, $6F, $6F, $74, $20, $43, $65, $72, $74, $69, + $66, $69, $63, $61, $74, $65, $20, $41, $75, $74, $68, $6F, $72, $69, $74, $79, + $82, $10, $7A, $F0, $0D, $BE, $D2, $D7, $92, $82, $48, $81, $4A, $61, $A1, $26, + $63, $B1, $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $01, $04, $05, + $00, $03, $81, $81, $00, $78, $3A, $91, $4D, $DD, $FA, $88, $DD, $BB, $8E, $A0, + $80, $E2, $21, $5F, $78, $E0, $B0, $CD, $D7, $21, $7C, $32, $3D, $E2, $D4, $81, + $87, $9A, $4B, $2E, $28, $E6, $25, $69, $44, $4B, $D4, $50, $04, $1F, $47, $6E, + $1D, $C9, $97, $4A, $CC, $F1, $90, $1A, $70, $73, $72, $37, $4D, $D4, $EC, $43, + $CB, $BA, $8A, $49, $A0, $C0, $A9, $F3, $87, $4A, $70, $2F, $39, $C9, $17, $3A, + $EC, $1C, $E1, $29, $8D, $6F, $2C, $6C, $FC, $52, $FD, $4A, $BC, $B4, $0E, $CC, + $61, $C4, $52, $C6, $28, $F2, $08, $9E, $1D, $D4, $8F, $7B, $1C, $DE, $DA, $47, + $F6, $3C, $25, $4E, $A1, $6F, $AF, $C1, $CC, $07, $83, $86, $CF, $8D, $29, $07, + $62, $27, $6C, $A7, $31, $31, $82, $19, $26, $30, $82, $19, $22, $02, $01, $01, + $30, $3F, $30, $2B, $31, $29, $30, $27, $06, $03, $55, $04, $03, $13, $20, $53, + $75, $70, $65, $72, $20, $52, $6F, $6F, $74, $20, $43, $65, $72, $74, $69, $66, + $69, $63, $61, $74, $65, $20, $41, $75, $74, $68, $6F, $72, $69, $74, $79, $02, + $10, $E5, $12, $72, $FF, $29, $21, $49, $AA, $40, $3F, $BA, $86, $59, $82, $F0, + $19, $30, $09, $06, $05, $2B, $0E, $03, $02, $1A, $05, $00, $A0, $81, $84, $30, + $19, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $09, $03, $31, $0C, $06, $0A, + $2B, $06, $01, $04, $01, $82, $37, $02, $01, $04, $30, $23, $06, $09, $2A, $86, + $48, $86, $F7, $0D, $01, $09, $04, $31, $16, $04, $14, $42, $F8, $22, $90, $C3, + $E0, $97, $4D, $42, $72, $DE, $E3, $EB, $06, $B9, $41, $CC, $9F, $04, $37, $30, + $42, $06, $0A, $2B, $06, $01, $04, $01, $82, $37, $02, $01, $0C, $31, $34, $30, + $32, $A0, $18, $80, $16, $00, $44, $00, $65, $00, $6C, $00, $70, $00, $68, $00, + $69, $00, $20, $00, $4C, $00, $69, $00, $74, $00, $65, $A1, $16, $80, $14, $77, + $77, $77, $2E, $65, $6D, $62, $61, $72, $63, $61, $64, $65, $72, $6F, $2E, $63, + $6F, $6D, $20, $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $01, $01, + $05, $00, $04, $81, $80, $0C, $40, $14, $18, $3A, $E1, $86, $6E, $E8, $29, $59, + $69, $AD, $C8, $A5, $1A, $60, $BD, $F7, $CD, $4C, $7C, $E6, $FA, $FA, $5D, $CD, + $7B, $CE, $59, $DA, $7E, $27, $FB, $65, $6F, $7F, $AB, $4F, $07, $84, $31, $1E, + $85, $F9, $28, $3E, $1D, $7D, $68, $8E, $7D, $26, $00, $4F, $4D, $DD, $F7, $05, + $E0, $D2, $53, $82, $D8, $74, $F8, $50, $FF, $D8, $24, $8C, $7B, $0E, $D4, $13, + $D5, $32, $B8, $23, $F0, $05, $B2, $F9, $80, $17, $78, $AC, $1A, $A8, $B6, $99, + $F3, $19, $D7, $77, $3A, $52, $15, $42, $04, $D0, $2F, $EE, $2E, $BB, $D3, $0A, + $1A, $CC, $3D, $70, $B8, $BD, $32, $A0, $EC, $98, $47, $32, $3C, $11, $4D, $19, + $4A, $79, $54, $24, $85, $A1, $82, $17, $B6, $30, $82, $07, $FF, $06, $0A, $2B, + $06, $01, $04, $01, $82, $37, $03, $03, $01, $31, $82, $07, $EF, $30, $82, $07, + $EB, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $07, $02, $A0, $82, $07, $DC, + $30, $82, $07, $D8, $02, $01, $03, $31, $0B, $30, $09, $06, $05, $2B, $0E, $03, + $02, $1A, $05, $00, $30, $56, $06, $0B, $2A, $86, $48, $86, $F7, $0D, $01, $09, + $10, $01, $04, $A0, $47, $04, $45, $30, $43, $02, $01, $01, $06, $01, $2A, $30, + $1F, $30, $07, $06, $05, $2B, $0E, $03, $02, $1A, $04, $14, $F5, $3E, $9E, $C5, + $CE, $AA, $70, $60, $8A, $E7, $75, $98, $E2, $BA, $D3, $80, $75, $62, $E3, $E8, + $02, $04, $00, $81, $08, $09, $18, $14, $32, $30, $31, $36, $31, $30, $30, $37, + $31, $35, $32, $31, $31, $31, $2E, $30, $34, $36, $36, $5A, $A0, $82, $05, $49, + $30, $82, $05, $45, $30, $82, $03, $2D, $A0, $03, $02, $01, $02, $02, $10, $25, + $1F, $5D, $98, $81, $82, $17, $2E, $3C, $41, $9E, $01, $4F, $B0, $40, $4C, $30, + $0D, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $01, $05, $05, $00, $30, $55, + $31, $0B, $30, $09, $06, $03, $55, $04, $06, $13, $02, $43, $4E, $31, $1A, $30, + $18, $06, $03, $55, $04, $0A, $13, $11, $57, $6F, $53, $69, $67, $6E, $20, $43, + $41, $20, $4C, $69, $6D, $69, $74, $65, $64, $31, $2A, $30, $28, $06, $03, $55, + $04, $03, $13, $21, $43, $65, $72, $74, $69, $66, $69, $63, $61, $74, $69, $6F, + $6E, $20, $41, $75, $74, $68, $6F, $72, $69, $74, $79, $20, $6F, $66, $20, $57, + $6F, $53, $69, $67, $6E, $30, $1E, $17, $0D, $30, $39, $30, $38, $30, $38, $30, + $31, $30, $30, $30, $35, $5A, $17, $0D, $32, $34, $30, $38, $30, $38, $30, $31, + $30, $30, $30, $35, $5A, $30, $4F, $31, $0B, $30, $09, $06, $03, $55, $04, $06, + $13, $02, $43, $4E, $31, $1A, $30, $18, $06, $03, $55, $04, $0A, $13, $11, $57, + $6F, $53, $69, $67, $6E, $20, $43, $41, $20, $4C, $69, $6D, $69, $74, $65, $64, + $31, $24, $30, $22, $06, $03, $55, $04, $03, $13, $1B, $57, $6F, $53, $69, $67, + $6E, $20, $54, $69, $6D, $65, $20, $53, $74, $61, $6D, $70, $69, $6E, $67, $20, + $53, $69, $67, $6E, $65, $72, $30, $82, $01, $22, $30, $0D, $06, $09, $2A, $86, + $48, $86, $F7, $0D, $01, $01, $01, $05, $00, $03, $82, $01, $0F, $00, $30, $82, + $01, $0A, $02, $82, $01, $01, $00, $A5, $D0, $68, $BA, $82, $CB, $DB, $A7, $6D, + $55, $B9, $31, $A7, $DA, $F4, $9C, $6B, $03, $54, $4F, $A2, $1C, $EF, $1C, $B5, + $96, $44, $1F, $56, $41, $3F, $61, $B0, $03, $59, $4B, $82, $0E, $DB, $15, $C8, + $D0, $CC, $E0, $87, $C6, $09, $75, $8A, $84, $E3, $ED, $97, $C2, $C8, $92, $34, + $C0, $F1, $64, $53, $60, $51, $34, $48, $90, $B1, $4F, $89, $69, $F5, $2E, $A0, + $2A, $16, $54, $2F, $C0, $37, $58, $FF, $35, $52, $1B, $52, $08, $CF, $B9, $EC, + $5A, $27, $52, $5A, $83, $EB, $68, $B1, $B9, $F8, $B2, $A9, $08, $F3, $4F, $AB, + $17, $0F, $2E, $BD, $4F, $E5, $12, $8A, $BF, $7C, $B7, $E7, $65, $32, $3B, $83, + $41, $02, $22, $3A, $24, $3B, $6A, $A3, $3C, $AF, $EB, $79, $42, $17, $56, $74, + $C8, $61, $63, $DD, $8C, $2F, $3E, $EF, $3A, $A3, $47, $52, $04, $3B, $00, $18, + $AE, $26, $71, $E0, $7A, $04, $8D, $75, $82, $2D, $65, $4E, $C1, $B8, $F2, $8C, + $DE, $0F, $63, $03, $D4, $C3, $52, $60, $72, $8C, $88, $CC, $6F, $96, $D5, $C7, + $7D, $29, $DB, $26, $04, $9E, $A2, $B4, $BF, $5A, $B5, $6E, $F2, $46, $0F, $29, + $81, $C5, $C0, $4F, $A6, $87, $8C, $7C, $21, $07, $54, $1F, $50, $F0, $42, $5C, + $55, $7C, $CF, $44, $2E, $41, $3D, $18, $8D, $5F, $D9, $68, $E6, $47, $91, $8F, + $CF, $DC, $7D, $90, $60, $FF, $CB, $48, $E4, $61, $5E, $4F, $73, $45, $0D, $C8, + $34, $89, $03, $D5, $FE, $0B, $C3, $02, $03, $01, $00, $01, $A3, $82, $01, $15, + $30, $82, $01, $11, $30, $0E, $06, $03, $55, $1D, $0F, $01, $01, $FF, $04, $04, + $03, $02, $06, $C0, $30, $16, $06, $03, $55, $1D, $25, $01, $01, $FF, $04, $0C, + $30, $0A, $06, $08, $2B, $06, $01, $05, $05, $07, $03, $08, $30, $0C, $06, $03, + $55, $1D, $13, $01, $01, $FF, $04, $02, $30, $00, $30, $30, $06, $03, $55, $1D, + $1F, $04, $29, $30, $27, $30, $25, $A0, $23, $A0, $21, $86, $1F, $68, $74, $74, + $70, $3A, $2F, $2F, $63, $72, $6C, $73, $31, $2E, $77, $6F, $73, $69, $67, $6E, + $2E, $63, $6F, $6D, $2F, $63, $61, $31, $2E, $63, $72, $6C, $30, $67, $06, $08, + $2B, $06, $01, $05, $05, $07, $01, $01, $04, $5B, $30, $59, $30, $27, $06, $08, + $2B, $06, $01, $05, $05, $07, $30, $01, $86, $1B, $68, $74, $74, $70, $3A, $2F, + $2F, $6F, $63, $73, $70, $31, $2E, $77, $6F, $73, $69, $67, $6E, $2E, $63, $6F, + $6D, $2F, $63, $61, $31, $30, $2E, $06, $08, $2B, $06, $01, $05, $05, $07, $30, + $02, $86, $22, $68, $74, $74, $70, $3A, $2F, $2F, $61, $69, $61, $31, $2E, $77, + $6F, $73, $69, $67, $6E, $2E, $63, $6F, $6D, $2F, $63, $61, $31, $2D, $74, $73, + $61, $2E, $63, $65, $72, $30, $1D, $06, $03, $55, $1D, $0E, $04, $16, $04, $14, + $DF, $6E, $12, $D5, $0C, $54, $2E, $5A, $14, $CA, $DE, $03, $DE, $AB, $4E, $D4, + $98, $0C, $46, $B5, $30, $1F, $06, $03, $55, $1D, $23, $04, $18, $30, $16, $80, + $14, $E1, $66, $CF, $0E, $D1, $F1, $B3, $4B, $B7, $06, $20, $14, $FE, $87, $12, + $D5, $F6, $FE, $FB, $3E, $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, + $01, $05, $05, $00, $03, $82, $02, $01, $00, $7C, $98, $2F, $BB, $C3, $D2, $AE, + $C2, $2A, $8F, $A6, $97, $76, $56, $86, $32, $C4, $CD, $36, $68, $8B, $EC, $D7, + $80, $1A, $31, $79, $B0, $5E, $56, $B9, $69, $EB, $B9, $0B, $32, $A9, $83, $26, + $DC, $77, $5D, $7A, $56, $B2, $46, $A0, $7D, $15, $D6, $6D, $F9, $AC, $F8, $35, + $73, $78, $36, $02, $60, $22, $20, $1C, $EF, $18, $8F, $7E, $66, $B2, $4F, $E7, + $71, $93, $5A, $2B, $E6, $E5, $8D, $3D, $5D, $2E, $27, $4B, $46, $CB, $1D, $04, + $F3, $0B, $8C, $3F, $13, $A8, $0D, $D4, $CD, $E8, $28, $E8, $2A, $9C, $55, $C8, + $E3, $FF, $9D, $A9, $22, $49, $6E, $E8, $E7, $88, $92, $37, $57, $80, $60, $44, + $18, $27, $43, $58, $18, $04, $6D, $86, $C0, $65, $47, $05, $57, $55, $50, $91, + $E6, $73, $50, $EE, $3F, $10, $A9, $8F, $05, $2F, $DA, $68, $11, $53, $6E, $1F, + $AD, $98, $F3, $76, $3E, $85, $D0, $57, $A3, $CF, $E4, $C1, $1A, $4C, $64, $06, + $A6, $44, $AB, $4E, $1E, $E2, $4B, $D5, $A4, $6D, $71, $F8, $6B, $CB, $66, $13, + $A6, $47, $1F, $21, $2A, $A1, $AE, $4C, $89, $A4, $7D, $28, $77, $17, $4F, $88, + $8D, $B1, $D1, $5D, $B1, $C4, $93, $5A, $BF, $22, $92, $6C, $AB, $67, $82, $68, + $ED, $D7, $21, $CB, $63, $BC, $93, $C4, $17, $8E, $87, $19, $25, $AD, $17, $54, + $B4, $79, $D2, $A5, $93, $73, $BC, $7C, $BB, $E4, $80, $0F, $8F, $CC, $AA, $0A, + $D0, $E4, $93, $75, $AA, $6C, $CF, $49, $7D, $75, $EC, $82, $28, $5C, $73, $F0, + $42, $BF, $9E, $A6, $13, $2E, $DE, $6C, $EE, $80, $03, $A6, $EE, $88, $36, $A0, + $1B, $B2, $82, $E8, $3D, $BB, $A6, $1A, $D5, $11, $AE, $0A, $0B, $62, $D6, $51, + $36, $97, $23, $17, $52, $26, $ED, $F1, $C5, $B6, $21, $75, $39, $15, $07, $E0, + $42, $F1, $2A, $89, $04, $77, $66, $AD, $14, $04, $D2, $C7, $D4, $7C, $4F, $6C, + $DD, $4E, $DC, $ED, $8E, $A9, $F6, $86, $17, $E7, $E1, $59, $66, $BB, $D0, $7A, + $D0, $94, $42, $EB, $AF, $C1, $54, $CA, $E2, $1A, $A4, $A9, $B6, $A5, $D4, $81, + $CA, $15, $26, $FA, $6F, $B4, $DF, $78, $10, $04, $8C, $48, $18, $BC, $28, $59, + $66, $9A, $B8, $18, $F1, $D9, $5E, $5B, $82, $FF, $FE, $11, $D7, $D4, $04, $36, + $30, $9F, $51, $1D, $3C, $C8, $64, $40, $75, $7C, $D8, $35, $83, $EF, $B1, $E5, + $28, $76, $0A, $05, $3D, $E9, $B8, $1E, $70, $50, $3A, $60, $E2, $A5, $01, $88, + $88, $9C, $04, $CC, $6A, $F2, $15, $85, $D1, $0C, $B7, $4A, $6D, $93, $4E, $82, + $CA, $29, $E9, $75, $0B, $42, $E4, $3A, $47, $24, $08, $6D, $80, $5C, $E6, $6A, + $67, $2C, $B6, $13, $08, $C9, $4F, $D8, $66, $53, $B9, $B6, $7F, $E2, $EA, $39, + $95, $6F, $71, $77, $96, $03, $AF, $B9, $E3, $CC, $E3, $A1, $B9, $F1, $01, $C6, + $6E, $BE, $FC, $97, $5C, $B2, $D1, $F1, $7B, $FB, $33, $C6, $65, $EA, $E6, $18, + $F9, $AB, $3A, $27, $1A, $2D, $20, $6B, $E6, $31, $82, $02, $1F, $30, $82, $02, + $1B, $02, $01, $01, $30, $69, $30, $55, $31, $0B, $30, $09, $06, $03, $55, $04, + $06, $13, $02, $43, $4E, $31, $1A, $30, $18, $06, $03, $55, $04, $0A, $13, $11, + $57, $6F, $53, $69, $67, $6E, $20, $43, $41, $20, $4C, $69, $6D, $69, $74, $65, + $64, $31, $2A, $30, $28, $06, $03, $55, $04, $03, $13, $21, $43, $65, $72, $74, + $69, $66, $69, $63, $61, $74, $69, $6F, $6E, $20, $41, $75, $74, $68, $6F, $72, + $69, $74, $79, $20, $6F, $66, $20, $57, $6F, $53, $69, $67, $6E, $02, $10, $25, + $1F, $5D, $98, $81, $82, $17, $2E, $3C, $41, $9E, $01, $4F, $B0, $40, $4C, $30, + $09, $06, $05, $2B, $0E, $03, $02, $1A, $05, $00, $A0, $81, $8C, $30, $1A, $06, + $09, $2A, $86, $48, $86, $F7, $0D, $01, $09, $03, $31, $0D, $06, $0B, $2A, $86, + $48, $86, $F7, $0D, $01, $09, $10, $01, $04, $30, $1C, $06, $09, $2A, $86, $48, + $86, $F7, $0D, $01, $09, $05, $31, $0F, $17, $0D, $31, $36, $31, $30, $30, $37, + $31, $35, $32, $31, $31, $31, $5A, $30, $23, $06, $09, $2A, $86, $48, $86, $F7, + $0D, $01, $09, $04, $31, $16, $04, $14, $DE, $5D, $64, $98, $78, $13, $90, $E2, + $06, $C7, $EA, $1F, $B1, $A2, $3F, $5A, $0E, $33, $6D, $E8, $30, $2B, $06, $0B, + $2A, $86, $48, $86, $F7, $0D, $01, $09, $10, $02, $0C, $31, $1C, $30, $1A, $30, + $18, $30, $16, $04, $14, $54, $09, $B5, $6C, $89, $BB, $1A, $88, $1D, $E1, $A3, + $2C, $95, $0D, $40, $FD, $6B, $94, $C7, $4E, $30, $0D, $06, $09, $2A, $86, $48, + $86, $F7, $0D, $01, $01, $05, $05, $00, $04, $82, $01, $00, $A2, $ED, $01, $A1, + $F9, $9A, $1A, $5B, $23, $A6, $A7, $16, $86, $26, $92, $3C, $0A, $69, $33, $C3, + $F9, $0B, $85, $FA, $3E, $EF, $BA, $7A, $F4, $47, $46, $F2, $AE, $65, $A0, $93, + $8E, $6F, $0D, $9C, $8A, $0B, $14, $ED, $CA, $00, $A6, $FA, $16, $AE, $EE, $70, + $DC, $E8, $7D, $BE, $1F, $3F, $C8, $CC, $1C, $6C, $36, $1E, $11, $9C, $E5, $03, + $F0, $55, $81, $5F, $EF, $EE, $A7, $7B, $6B, $4F, $24, $3E, $D4, $F3, $B7, $C4, + $03, $56, $38, $CB, $30, $25, $68, $93, $19, $3E, $14, $9A, $A6, $EC, $49, $9E, + $C5, $A9, $7C, $AD, $3D, $48, $C3, $64, $59, $1F, $F2, $03, $85, $A3, $69, $E7, + $87, $FD, $4C, $D4, $27, $01, $CF, $BE, $0C, $92, $FC, $05, $38, $8A, $F6, $9B, + $35, $6F, $5B, $0A, $4D, $7B, $71, $6E, $B5, $FC, $12, $2D, $6F, $86, $E2, $9F, + $63, $21, $C0, $7A, $18, $1F, $45, $96, $0C, $79, $58, $2E, $A8, $35, $14, $E8, + $C3, $8D, $F7, $0A, $36, $86, $13, $BF, $12, $14, $DC, $19, $A2, $E6, $45, $FD, + $89, $2C, $5B, $6E, $7F, $0E, $16, $B8, $C1, $CA, $45, $61, $83, $D0, $88, $CC, + $00, $90, $AF, $C3, $FD, $AB, $3F, $1E, $A3, $9D, $37, $07, $63, $55, $D2, $BF, + $FF, $04, $8A, $76, $16, $99, $F9, $C6, $5D, $94, $63, $D4, $43, $BD, $FF, $31, + $70, $EE, $CB, $B0, $C7, $03, $30, $C5, $00, $D5, $F5, $EB, $E0, $04, $60, $C2, + $F1, $4A, $5B, $AE, $D2, $E7, $5B, $2A, $07, $9C, $DA, $A3, $30, $82, $0F, $AF, + $06, $0A, $2B, $06, $01, $04, $01, $82, $37, $02, $04, $01, $31, $82, $0F, $9F, + $30, $82, $0F, $9B, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $07, $02, $A0, + $82, $0F, $8C, $30, $82, $0F, $88, $02, $01, $01, $31, $0F, $30, $0D, $06, $09, + $60, $86, $48, $01, $65, $03, $04, $02, $01, $05, $00, $30, $5C, $06, $0A, $2B, + $06, $01, $04, $01, $82, $37, $02, $01, $04, $A0, $4E, $30, $4C, $30, $17, $06, + $0A, $2B, $06, $01, $04, $01, $82, $37, $02, $01, $0F, $30, $09, $03, $01, $00, + $A0, $04, $A2, $02, $80, $00, $30, $31, $30, $0D, $06, $09, $60, $86, $48, $01, + $65, $03, $04, $02, $01, $05, $00, $04, $20, $2B, $D4, $A3, $E5, $8C, $01, $24, + $0D, $39, $5B, $05, $E9, $DB, $0A, $7B, $CE, $15, $67, $AC, $BC, $F3, $55, $BA, + $1C, $8E, $DB, $BE, $6F, $2F, $1F, $9F, $27, $A0, $82, $04, $CE, $30, $82, $04, + $CA, $30, $82, $02, $B2, $A0, $03, $02, $01, $02, $02, $10, $2F, $A7, $24, $D1, + $84, $61, $9A, $B9, $40, $B4, $C6, $A5, $60, $C6, $04, $31, $30, $0D, $06, $09, + $2A, $86, $48, $86, $F7, $0D, $01, $01, $0B, $05, $00, $30, $54, $31, $0B, $30, + $09, $06, $03, $55, $04, $06, $13, $02, $43, $4E, $31, $15, $30, $13, $06, $03, + $55, $04, $0A, $13, $0C, $53, $75, $70, $65, $72, $20, $53, $74, $75, $64, $69, + $6F, $31, $2E, $30, $2C, $06, $03, $55, $04, $03, $13, $25, $53, $75, $70, $65, + $72, $20, $52, $6F, $6F, $74, $20, $43, $65, $72, $74, $69, $66, $69, $63, $61, + $74, $65, $20, $41, $75, $74, $68, $6F, $72, $69, $74, $79, $20, $2D, $20, $47, + $32, $30, $1E, $17, $0D, $31, $35, $30, $35, $30, $34, $31, $36, $30, $30, $30, + $30, $5A, $17, $0D, $33, $35, $30, $35, $30, $34, $31, $36, $30, $30, $30, $30, + $5A, $30, $60, $31, $0B, $30, $09, $06, $03, $55, $04, $06, $13, $02, $43, $4E, + $31, $15, $30, $13, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $09, $01, $16, + $06, $4C, $73, $75, $70, $65, $72, $31, $15, $30, $13, $06, $03, $55, $04, $0A, + $13, $0C, $53, $75, $70, $65, $72, $20, $53, $74, $75, $64, $69, $6F, $31, $23, + $30, $21, $06, $03, $55, $04, $03, $13, $1A, $53, $75, $70, $65, $72, $20, $43, + $6F, $64, $65, $20, $53, $69, $67, $6E, $69, $6E, $67, $20, $43, $41, $20, $2D, + $20, $47, $32, $30, $82, $01, $22, $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, + $0D, $01, $01, $01, $05, $00, $03, $82, $01, $0F, $00, $30, $82, $01, $0A, $02, + $82, $01, $01, $00, $DD, $1D, $1E, $AE, $62, $65, $5F, $B5, $3C, $04, $2E, $14, + $2E, $79, $E4, $94, $51, $5A, $9A, $FD, $82, $57, $AD, $DD, $12, $37, $3A, $95, + $FF, $43, $0B, $71, $4A, $63, $3F, $B8, $25, $FC, $91, $DC, $0F, $54, $FB, $39, + $76, $E5, $E2, $04, $FF, $7A, $EB, $67, $8B, $D4, $1E, $67, $BB, $E6, $71, $33, + $09, $AC, $D5, $BF, $67, $28, $6C, $2F, $4C, $DE, $01, $78, $11, $B5, $5E, $72, + $B3, $CB, $3C, $16, $48, $71, $EC, $A5, $97, $31, $13, $45, $32, $1E, $E8, $C5, + $99, $CC, $33, $EF, $CB, $4E, $CF, $A9, $E2, $0B, $0C, $E8, $A3, $B8, $BF, $47, + $EF, $E0, $4E, $AA, $79, $ED, $35, $F0, $7C, $48, $68, $51, $00, $CD, $B0, $40, + $60, $43, $45, $28, $7A, $DF, $84, $13, $A1, $16, $51, $0F, $93, $86, $3F, $53, + $A4, $FD, $C5, $BD, $03, $C9, $70, $38, $93, $17, $18, $9C, $20, $7D, $97, $16, + $D9, $19, $40, $1B, $35, $22, $63, $4B, $0A, $EF, $E1, $C1, $1E, $8A, $C1, $31, + $BE, $CA, $33, $04, $E3, $C8, $F9, $DD, $BB, $A4, $B1, $3E, $1F, $5D, $54, $CC, + $E8, $81, $52, $09, $29, $0E, $DE, $BC, $30, $16, $3E, $C3, $2E, $DF, $44, $93, + $F5, $4F, $0D, $49, $AB, $8C, $B3, $B8, $FE, $19, $88, $E9, $6B, $BC, $7E, $55, + $6B, $B5, $13, $B2, $7E, $C9, $D6, $03, $33, $2F, $A7, $E9, $B5, $45, $BB, $5C, + $A5, $C9, $5E, $67, $38, $CC, $18, $2D, $2E, $85, $00, $FE, $1D, $0F, $1F, $E0, + $D7, $24, $BF, $AB, $02, $03, $01, $00, $01, $A3, $81, $8B, $30, $81, $88, $30, + $81, $85, $06, $03, $55, $1D, $01, $04, $7E, $30, $7C, $80, $10, $7F, $28, $4D, + $8C, $3E, $5E, $15, $FF, $B0, $11, $66, $B1, $16, $C8, $E0, $C9, $A1, $56, $30, + $54, $31, $0B, $30, $09, $06, $03, $55, $04, $06, $13, $02, $43, $4E, $31, $15, + $30, $13, $06, $03, $55, $04, $0A, $13, $0C, $53, $75, $70, $65, $72, $20, $53, + $74, $75, $64, $69, $6F, $31, $2E, $30, $2C, $06, $03, $55, $04, $03, $13, $25, + $53, $75, $70, $65, $72, $20, $52, $6F, $6F, $74, $20, $43, $65, $72, $74, $69, + $66, $69, $63, $61, $74, $65, $20, $41, $75, $74, $68, $6F, $72, $69, $74, $79, + $20, $2D, $20, $47, $32, $82, $10, $FE, $1E, $21, $8F, $FB, $D4, $48, $BA, $44, + $FB, $30, $CF, $DB, $F6, $57, $72, $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, + $0D, $01, $01, $0B, $05, $00, $03, $82, $02, $01, $00, $A8, $F1, $42, $48, $8C, + $E3, $E3, $8F, $8B, $71, $4E, $50, $34, $2D, $10, $63, $5C, $B1, $5E, $91, $75, + $1E, $24, $E1, $9B, $1C, $60, $80, $A4, $91, $60, $B9, $09, $01, $74, $E2, $F7, + $A1, $D6, $57, $FF, $75, $F1, $B2, $A2, $CF, $AB, $D1, $77, $67, $EE, $E3, $C4, + $57, $CF, $E7, $15, $B5, $CB, $4B, $DF, $2B, $CD, $D4, $DF, $0B, $F1, $9C, $F1, + $F2, $5F, $18, $DB, $45, $6F, $60, $19, $FC, $01, $4D, $13, $92, $BC, $B6, $FE, + $D2, $BA, $A7, $B2, $D4, $28, $13, $E1, $58, $BD, $E7, $FA, $42, $14, $A3, $B0, + $80, $71, $E3, $D1, $FB, $4E, $4B, $FB, $67, $09, $9E, $14, $9F, $52, $8B, $19, + $AE, $C6, $B9, $8B, $AD, $D1, $C9, $C1, $B8, $F5, $54, $E4, $78, $29, $B0, $D4, + $6B, $5E, $45, $B6, $CC, $CE, $12, $2D, $8A, $6D, $F4, $B3, $E9, $F3, $0C, $7C, + $0B, $25, $0A, $C7, $5B, $FA, $48, $29, $1E, $01, $09, $E5, $F9, $CC, $FE, $B9, + $CD, $98, $A6, $68, $F5, $62, $9C, $35, $DE, $D6, $0A, $30, $34, $6B, $FD, $34, + $5F, $8C, $78, $15, $F5, $99, $FE, $D4, $0D, $C5, $98, $44, $DA, $81, $C1, $36, + $40, $BD, $E1, $A5, $3A, $CF, $98, $25, $DA, $CB, $81, $DF, $1E, $73, $93, $15, + $A2, $6A, $C8, $E5, $3F, $59, $69, $7C, $9A, $DC, $C7, $BE, $D2, $3C, $B0, $BD, + $DA, $B9, $1F, $CE, $95, $DB, $A5, $5B, $24, $46, $7B, $9A, $C3, $FB, $A0, $B0, + $1A, $79, $59, $6A, $A1, $91, $AC, $79, $77, $FD, $CF, $9A, $EB, $C2, $27, $17, + $BF, $73, $44, $94, $FE, $E6, $7A, $5C, $A7, $83, $98, $4A, $F8, $15, $E2, $1E, + $57, $CA, $80, $6E, $7D, $1F, $F0, $A6, $C6, $D5, $9A, $DA, $24, $E6, $35, $7D, + $A1, $1E, $BD, $EC, $59, $66, $74, $5B, $3D, $94, $BF, $CE, $70, $12, $D3, $0F, + $46, $5C, $E1, $BE, $28, $3C, $7E, $0D, $9E, $A2, $E4, $C3, $D6, $2D, $48, $CB, + $DA, $FF, $CD, $FD, $58, $00, $C6, $5D, $6C, $4B, $CB, $49, $58, $2B, $9D, $F7, + $92, $D9, $01, $9E, $A1, $A7, $A1, $83, $A0, $FD, $33, $6C, $23, $DD, $31, $56, + $95, $A9, $69, $77, $C9, $56, $35, $40, $27, $BC, $D7, $30, $2A, $C0, $52, $91, + $32, $2E, $AB, $47, $8D, $44, $FE, $15, $E6, $06, $F1, $F1, $D9, $C3, $1F, $EB, + $44, $DB, $71, $03, $D0, $BA, $AE, $5E, $54, $57, $58, $40, $6D, $B1, $39, $E4, + $6A, $73, $D2, $37, $87, $34, $7E, $D6, $A2, $9E, $2C, $23, $15, $76, $07, $5C, + $3A, $C3, $A5, $C6, $EA, $28, $50, $4F, $4C, $28, $52, $0A, $C1, $F2, $4F, $DD, + $82, $24, $5A, $BB, $58, $E4, $0E, $F6, $F0, $21, $3E, $CA, $DA, $D2, $3F, $D4, + $F6, $FF, $70, $C2, $0A, $D8, $77, $BD, $62, $2C, $1F, $89, $DD, $54, $98, $03, + $4A, $6A, $6D, $30, $06, $5D, $89, $F4, $A2, $2E, $BF, $D8, $BF, $3C, $58, $42, + $61, $D7, $7B, $9F, $EF, $B7, $1A, $56, $10, $02, $D3, $BD, $FA, $0B, $C9, $3D, + $68, $17, $88, $EC, $99, $10, $29, $32, $7D, $E1, $39, $31, $82, $0A, $40, $30, + $82, $0A, $3C, $02, $01, $01, $30, $68, $30, $54, $31, $0B, $30, $09, $06, $03, + $55, $04, $06, $13, $02, $43, $4E, $31, $15, $30, $13, $06, $03, $55, $04, $0A, + $13, $0C, $53, $75, $70, $65, $72, $20, $53, $74, $75, $64, $69, $6F, $31, $2E, + $30, $2C, $06, $03, $55, $04, $03, $13, $25, $53, $75, $70, $65, $72, $20, $52, + $6F, $6F, $74, $20, $43, $65, $72, $74, $69, $66, $69, $63, $61, $74, $65, $20, + $41, $75, $74, $68, $6F, $72, $69, $74, $79, $20, $2D, $20, $47, $32, $02, $10, + $2F, $A7, $24, $D1, $84, $61, $9A, $B9, $40, $B4, $C6, $A5, $60, $C6, $04, $31, + $30, $0D, $06, $09, $60, $86, $48, $01, $65, $03, $04, $02, $01, $05, $00, $A0, + $81, $A3, $30, $11, $06, $0A, $2A, $86, $48, $86, $F7, $0D, $01, $09, $19, $04, + $31, $03, $02, $01, $01, $30, $19, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, + $09, $03, $31, $0C, $06, $0A, $2B, $06, $01, $04, $01, $82, $37, $02, $01, $04, + $30, $2F, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $09, $04, $31, $22, $04, + $20, $F6, $10, $56, $8D, $D9, $D3, $43, $18, $37, $CE, $6E, $6D, $82, $CC, $13, + $E7, $D5, $4F, $02, $4F, $E7, $FB, $A6, $98, $6E, $11, $81, $F2, $50, $E5, $CC, + $35, $30, $42, $06, $0A, $2B, $06, $01, $04, $01, $82, $37, $02, $01, $0C, $31, + $34, $30, $32, $A0, $18, $80, $16, $00, $44, $00, $65, $00, $6C, $00, $70, $00, + $68, $00, $69, $00, $20, $00, $4C, $00, $69, $00, $74, $00, $65, $A1, $16, $80, + $14, $77, $77, $77, $2E, $65, $6D, $62, $61, $72, $63, $61, $64, $65, $72, $6F, + $2E, $63, $6F, $6D, $20, $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, + $01, $01, $05, $00, $04, $82, $01, $00, $6B, $85, $90, $F3, $39, $7B, $1F, $DE, + $BC, $1E, $F8, $C3, $BE, $9A, $D6, $A1, $4D, $69, $BF, $CF, $8F, $03, $D3, $1B, + $DD, $DF, $8F, $AB, $12, $17, $30, $C6, $AA, $F7, $23, $3F, $21, $25, $3B, $BC, + $E0, $84, $9D, $B7, $51, $CF, $68, $29, $0C, $09, $6F, $B5, $82, $B3, $C6, $ED, + $ED, $DD, $DF, $DC, $9D, $75, $15, $DE, $4D, $E2, $7C, $98, $50, $6A, $7C, $81, + $03, $01, $21, $47, $21, $2C, $3E, $98, $07, $A8, $0A, $EF, $80, $49, $9F, $6E, + $BF, $CB, $9C, $5C, $72, $F5, $70, $A2, $C5, $24, $D7, $75, $39, $86, $BC, $5F, + $AB, $10, $58, $2C, $7C, $E5, $53, $29, $4E, $87, $1E, $3F, $C9, $2E, $E2, $02, + $7E, $5E, $C5, $99, $85, $6E, $5A, $14, $5F, $87, $F3, $19, $42, $6A, $63, $46, + $75, $84, $B0, $ED, $97, $09, $5D, $DA, $96, $B4, $EB, $1A, $67, $BB, $A3, $A9, + $12, $00, $22, $36, $D8, $37, $41, $4B, $78, $42, $7A, $38, $F7, $9E, $4C, $BE, + $F1, $47, $0C, $65, $2F, $7D, $C9, $4F, $BF, $F6, $BE, $C3, $D4, $7D, $CF, $44, + $D8, $7F, $B0, $59, $6B, $55, $4E, $43, $0F, $2B, $1F, $9C, $A0, $24, $5F, $44, + $2C, $27, $56, $C0, $A8, $F3, $E4, $33, $11, $AE, $5F, $D9, $B8, $96, $F6, $D9, + $8C, $28, $28, $B7, $92, $FA, $A8, $BE, $8A, $F7, $7F, $76, $54, $16, $5C, $78, + $99, $1F, $38, $7D, $35, $92, $DD, $8F, $C9, $79, $6E, $5D, $C5, $C5, $D3, $3D, + $3E, $24, $19, $27, $8E, $DD, $C6, $73, $A1, $82, $08, $03, $30, $82, $07, $FF, + $06, $0A, $2B, $06, $01, $04, $01, $82, $37, $03, $03, $01, $31, $82, $07, $EF, + $30, $82, $07, $EB, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $07, $02, $A0, + $82, $07, $DC, $30, $82, $07, $D8, $02, $01, $03, $31, $0B, $30, $09, $06, $05, + $2B, $0E, $03, $02, $1A, $05, $00, $30, $56, $06, $0B, $2A, $86, $48, $86, $F7, + $0D, $01, $09, $10, $01, $04, $A0, $47, $04, $45, $30, $43, $02, $01, $01, $06, + $01, $2A, $30, $1F, $30, $07, $06, $05, $2B, $0E, $03, $02, $1A, $04, $14, $EC, + $5E, $87, $A8, $49, $B5, $26, $C3, $07, $CB, $73, $C7, $17, $33, $DE, $19, $20, + $10, $39, $67, $02, $04, $00, $81, $08, $09, $18, $14, $32, $30, $31, $36, $31, + $30, $30, $37, $31, $35, $32, $31, $31, $31, $2E, $30, $36, $36, $36, $5A, $A0, + $82, $05, $49, $30, $82, $05, $45, $30, $82, $03, $2D, $A0, $03, $02, $01, $02, + $02, $10, $25, $1F, $5D, $98, $81, $82, $17, $2E, $3C, $41, $9E, $01, $4F, $B0, + $40, $4C, $30, $0D, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $01, $05, $05, + $00, $30, $55, $31, $0B, $30, $09, $06, $03, $55, $04, $06, $13, $02, $43, $4E, + $31, $1A, $30, $18, $06, $03, $55, $04, $0A, $13, $11, $57, $6F, $53, $69, $67, + $6E, $20, $43, $41, $20, $4C, $69, $6D, $69, $74, $65, $64, $31, $2A, $30, $28, + $06, $03, $55, $04, $03, $13, $21, $43, $65, $72, $74, $69, $66, $69, $63, $61, + $74, $69, $6F, $6E, $20, $41, $75, $74, $68, $6F, $72, $69, $74, $79, $20, $6F, + $66, $20, $57, $6F, $53, $69, $67, $6E, $30, $1E, $17, $0D, $30, $39, $30, $38, + $30, $38, $30, $31, $30, $30, $30, $35, $5A, $17, $0D, $32, $34, $30, $38, $30, + $38, $30, $31, $30, $30, $30, $35, $5A, $30, $4F, $31, $0B, $30, $09, $06, $03, + $55, $04, $06, $13, $02, $43, $4E, $31, $1A, $30, $18, $06, $03, $55, $04, $0A, + $13, $11, $57, $6F, $53, $69, $67, $6E, $20, $43, $41, $20, $4C, $69, $6D, $69, + $74, $65, $64, $31, $24, $30, $22, $06, $03, $55, $04, $03, $13, $1B, $57, $6F, + $53, $69, $67, $6E, $20, $54, $69, $6D, $65, $20, $53, $74, $61, $6D, $70, $69, + $6E, $67, $20, $53, $69, $67, $6E, $65, $72, $30, $82, $01, $22, $30, $0D, $06, + $09, $2A, $86, $48, $86, $F7, $0D, $01, $01, $01, $05, $00, $03, $82, $01, $0F, + $00, $30, $82, $01, $0A, $02, $82, $01, $01, $00, $A5, $D0, $68, $BA, $82, $CB, + $DB, $A7, $6D, $55, $B9, $31, $A7, $DA, $F4, $9C, $6B, $03, $54, $4F, $A2, $1C, + $EF, $1C, $B5, $96, $44, $1F, $56, $41, $3F, $61, $B0, $03, $59, $4B, $82, $0E, + $DB, $15, $C8, $D0, $CC, $E0, $87, $C6, $09, $75, $8A, $84, $E3, $ED, $97, $C2, + $C8, $92, $34, $C0, $F1, $64, $53, $60, $51, $34, $48, $90, $B1, $4F, $89, $69, + $F5, $2E, $A0, $2A, $16, $54, $2F, $C0, $37, $58, $FF, $35, $52, $1B, $52, $08, + $CF, $B9, $EC, $5A, $27, $52, $5A, $83, $EB, $68, $B1, $B9, $F8, $B2, $A9, $08, + $F3, $4F, $AB, $17, $0F, $2E, $BD, $4F, $E5, $12, $8A, $BF, $7C, $B7, $E7, $65, + $32, $3B, $83, $41, $02, $22, $3A, $24, $3B, $6A, $A3, $3C, $AF, $EB, $79, $42, + $17, $56, $74, $C8, $61, $63, $DD, $8C, $2F, $3E, $EF, $3A, $A3, $47, $52, $04, + $3B, $00, $18, $AE, $26, $71, $E0, $7A, $04, $8D, $75, $82, $2D, $65, $4E, $C1, + $B8, $F2, $8C, $DE, $0F, $63, $03, $D4, $C3, $52, $60, $72, $8C, $88, $CC, $6F, + $96, $D5, $C7, $7D, $29, $DB, $26, $04, $9E, $A2, $B4, $BF, $5A, $B5, $6E, $F2, + $46, $0F, $29, $81, $C5, $C0, $4F, $A6, $87, $8C, $7C, $21, $07, $54, $1F, $50, + $F0, $42, $5C, $55, $7C, $CF, $44, $2E, $41, $3D, $18, $8D, $5F, $D9, $68, $E6, + $47, $91, $8F, $CF, $DC, $7D, $90, $60, $FF, $CB, $48, $E4, $61, $5E, $4F, $73, + $45, $0D, $C8, $34, $89, $03, $D5, $FE, $0B, $C3, $02, $03, $01, $00, $01, $A3, + $82, $01, $15, $30, $82, $01, $11, $30, $0E, $06, $03, $55, $1D, $0F, $01, $01, + $FF, $04, $04, $03, $02, $06, $C0, $30, $16, $06, $03, $55, $1D, $25, $01, $01, + $FF, $04, $0C, $30, $0A, $06, $08, $2B, $06, $01, $05, $05, $07, $03, $08, $30, + $0C, $06, $03, $55, $1D, $13, $01, $01, $FF, $04, $02, $30, $00, $30, $30, $06, + $03, $55, $1D, $1F, $04, $29, $30, $27, $30, $25, $A0, $23, $A0, $21, $86, $1F, + $68, $74, $74, $70, $3A, $2F, $2F, $63, $72, $6C, $73, $31, $2E, $77, $6F, $73, + $69, $67, $6E, $2E, $63, $6F, $6D, $2F, $63, $61, $31, $2E, $63, $72, $6C, $30, + $67, $06, $08, $2B, $06, $01, $05, $05, $07, $01, $01, $04, $5B, $30, $59, $30, + $27, $06, $08, $2B, $06, $01, $05, $05, $07, $30, $01, $86, $1B, $68, $74, $74, + $70, $3A, $2F, $2F, $6F, $63, $73, $70, $31, $2E, $77, $6F, $73, $69, $67, $6E, + $2E, $63, $6F, $6D, $2F, $63, $61, $31, $30, $2E, $06, $08, $2B, $06, $01, $05, + $05, $07, $30, $02, $86, $22, $68, $74, $74, $70, $3A, $2F, $2F, $61, $69, $61, + $31, $2E, $77, $6F, $73, $69, $67, $6E, $2E, $63, $6F, $6D, $2F, $63, $61, $31, + $2D, $74, $73, $61, $2E, $63, $65, $72, $30, $1D, $06, $03, $55, $1D, $0E, $04, + $16, $04, $14, $DF, $6E, $12, $D5, $0C, $54, $2E, $5A, $14, $CA, $DE, $03, $DE, + $AB, $4E, $D4, $98, $0C, $46, $B5, $30, $1F, $06, $03, $55, $1D, $23, $04, $18, + $30, $16, $80, $14, $E1, $66, $CF, $0E, $D1, $F1, $B3, $4B, $B7, $06, $20, $14, + $FE, $87, $12, $D5, $F6, $FE, $FB, $3E, $30, $0D, $06, $09, $2A, $86, $48, $86, + $F7, $0D, $01, $01, $05, $05, $00, $03, $82, $02, $01, $00, $7C, $98, $2F, $BB, + $C3, $D2, $AE, $C2, $2A, $8F, $A6, $97, $76, $56, $86, $32, $C4, $CD, $36, $68, + $8B, $EC, $D7, $80, $1A, $31, $79, $B0, $5E, $56, $B9, $69, $EB, $B9, $0B, $32, + $A9, $83, $26, $DC, $77, $5D, $7A, $56, $B2, $46, $A0, $7D, $15, $D6, $6D, $F9, + $AC, $F8, $35, $73, $78, $36, $02, $60, $22, $20, $1C, $EF, $18, $8F, $7E, $66, + $B2, $4F, $E7, $71, $93, $5A, $2B, $E6, $E5, $8D, $3D, $5D, $2E, $27, $4B, $46, + $CB, $1D, $04, $F3, $0B, $8C, $3F, $13, $A8, $0D, $D4, $CD, $E8, $28, $E8, $2A, + $9C, $55, $C8, $E3, $FF, $9D, $A9, $22, $49, $6E, $E8, $E7, $88, $92, $37, $57, + $80, $60, $44, $18, $27, $43, $58, $18, $04, $6D, $86, $C0, $65, $47, $05, $57, + $55, $50, $91, $E6, $73, $50, $EE, $3F, $10, $A9, $8F, $05, $2F, $DA, $68, $11, + $53, $6E, $1F, $AD, $98, $F3, $76, $3E, $85, $D0, $57, $A3, $CF, $E4, $C1, $1A, + $4C, $64, $06, $A6, $44, $AB, $4E, $1E, $E2, $4B, $D5, $A4, $6D, $71, $F8, $6B, + $CB, $66, $13, $A6, $47, $1F, $21, $2A, $A1, $AE, $4C, $89, $A4, $7D, $28, $77, + $17, $4F, $88, $8D, $B1, $D1, $5D, $B1, $C4, $93, $5A, $BF, $22, $92, $6C, $AB, + $67, $82, $68, $ED, $D7, $21, $CB, $63, $BC, $93, $C4, $17, $8E, $87, $19, $25, + $AD, $17, $54, $B4, $79, $D2, $A5, $93, $73, $BC, $7C, $BB, $E4, $80, $0F, $8F, + $CC, $AA, $0A, $D0, $E4, $93, $75, $AA, $6C, $CF, $49, $7D, $75, $EC, $82, $28, + $5C, $73, $F0, $42, $BF, $9E, $A6, $13, $2E, $DE, $6C, $EE, $80, $03, $A6, $EE, + $88, $36, $A0, $1B, $B2, $82, $E8, $3D, $BB, $A6, $1A, $D5, $11, $AE, $0A, $0B, + $62, $D6, $51, $36, $97, $23, $17, $52, $26, $ED, $F1, $C5, $B6, $21, $75, $39, + $15, $07, $E0, $42, $F1, $2A, $89, $04, $77, $66, $AD, $14, $04, $D2, $C7, $D4, + $7C, $4F, $6C, $DD, $4E, $DC, $ED, $8E, $A9, $F6, $86, $17, $E7, $E1, $59, $66, + $BB, $D0, $7A, $D0, $94, $42, $EB, $AF, $C1, $54, $CA, $E2, $1A, $A4, $A9, $B6, + $A5, $D4, $81, $CA, $15, $26, $FA, $6F, $B4, $DF, $78, $10, $04, $8C, $48, $18, + $BC, $28, $59, $66, $9A, $B8, $18, $F1, $D9, $5E, $5B, $82, $FF, $FE, $11, $D7, + $D4, $04, $36, $30, $9F, $51, $1D, $3C, $C8, $64, $40, $75, $7C, $D8, $35, $83, + $EF, $B1, $E5, $28, $76, $0A, $05, $3D, $E9, $B8, $1E, $70, $50, $3A, $60, $E2, + $A5, $01, $88, $88, $9C, $04, $CC, $6A, $F2, $15, $85, $D1, $0C, $B7, $4A, $6D, + $93, $4E, $82, $CA, $29, $E9, $75, $0B, $42, $E4, $3A, $47, $24, $08, $6D, $80, + $5C, $E6, $6A, $67, $2C, $B6, $13, $08, $C9, $4F, $D8, $66, $53, $B9, $B6, $7F, + $E2, $EA, $39, $95, $6F, $71, $77, $96, $03, $AF, $B9, $E3, $CC, $E3, $A1, $B9, + $F1, $01, $C6, $6E, $BE, $FC, $97, $5C, $B2, $D1, $F1, $7B, $FB, $33, $C6, $65, + $EA, $E6, $18, $F9, $AB, $3A, $27, $1A, $2D, $20, $6B, $E6, $31, $82, $02, $1F, + $30, $82, $02, $1B, $02, $01, $01, $30, $69, $30, $55, $31, $0B, $30, $09, $06, + $03, $55, $04, $06, $13, $02, $43, $4E, $31, $1A, $30, $18, $06, $03, $55, $04, + $0A, $13, $11, $57, $6F, $53, $69, $67, $6E, $20, $43, $41, $20, $4C, $69, $6D, + $69, $74, $65, $64, $31, $2A, $30, $28, $06, $03, $55, $04, $03, $13, $21, $43, + $65, $72, $74, $69, $66, $69, $63, $61, $74, $69, $6F, $6E, $20, $41, $75, $74, + $68, $6F, $72, $69, $74, $79, $20, $6F, $66, $20, $57, $6F, $53, $69, $67, $6E, + $02, $10, $25, $1F, $5D, $98, $81, $82, $17, $2E, $3C, $41, $9E, $01, $4F, $B0, + $40, $4C, $30, $09, $06, $05, $2B, $0E, $03, $02, $1A, $05, $00, $A0, $81, $8C, + $30, $1A, $06, $09, $2A, $86, $48, $86, $F7, $0D, $01, $09, $03, $31, $0D, $06, + $0B, $2A, $86, $48, $86, $F7, $0D, $01, $09, $10, $01, $04, $30, $1C, $06, $09, + $2A, $86, $48, $86, $F7, $0D, $01, $09, $05, $31, $0F, $17, $0D, $31, $36, $31, + $30, $30, $37, $31, $35, $32, $31, $31, $31, $5A, $30, $23, $06, $09, $2A, $86, + $48, $86, $F7, $0D, $01, $09, $04, $31, $16, $04, $14, $F2, $37, $3E, $D6, $1F, + $D2, $DE, $0F, $D2, $F0, $A4, $01, $E5, $DE, $02, $14, $DD, $59, $6E, $77, $30, + $2B, $06, $0B, $2A, $86, $48, $86, $F7, $0D, $01, $09, $10, $02, $0C, $31, $1C, + $30, $1A, $30, $18, $30, $16, $04, $14, $54, $09, $B5, $6C, $89, $BB, $1A, $88, + $1D, $E1, $A3, $2C, $95, $0D, $40, $FD, $6B, $94, $C7, $4E, $30, $0D, $06, $09, + $2A, $86, $48, $86, $F7, $0D, $01, $01, $05, $05, $00, $04, $82, $01, $00, $09, + $7C, $AB, $D3, $CF, $E5, $84, $05, $42, $F9, $7F, $F9, $EE, $BE, $98, $33, $51, + $7A, $12, $6B, $5D, $94, $1F, $20, $F4, $D6, $B6, $CC, $DD, $01, $E2, $6C, $FF, + $BB, $AB, $DA, $5E, $98, $A8, $B4, $60, $DB, $11, $E6, $18, $EF, $F5, $04, $44, + $94, $B3, $E2, $B0, $9A, $97, $29, $A6, $CA, $5D, $A8, $32, $2B, $C3, $AA, $C6, + $B8, $CF, $A5, $F4, $DC, $76, $34, $49, $C2, $10, $A3, $F6, $A0, $38, $13, $88, + $21, $76, $FA, $40, $34, $AB, $E7, $80, $2D, $EF, $61, $DC, $0B, $8D, $6B, $53, + $12, $FB, $6A, $4A, $B0, $97, $C3, $C2, $2C, $6B, $CB, $06, $17, $00, $1F, $55, + $FC, $ED, $D5, $FF, $C0, $22, $F3, $C7, $0F, $C0, $0B, $BD, $C3, $72, $9D, $01, + $19, $36, $C7, $DD, $27, $9B, $01, $3E, $4F, $EF, $40, $9B, $3C, $B7, $7C, $97, + $03, $9B, $6C, $68, $26, $3F, $66, $8D, $59, $42, $B7, $44, $D6, $95, $05, $05, + $33, $A3, $89, $A6, $6A, $D3, $28, $12, $C7, $15, $BA, $DF, $EC, $38, $4D, $37, + $B4, $CB, $50, $05, $47, $7C, $CA, $28, $3E, $6E, $A5, $F2, $A4, $F7, $B5, $F8, + $3E, $01, $16, $02, $0A, $0F, $D4, $99, $AA, $E4, $BA, $7A, $3A, $AC, $52, $5F, + $2E, $D1, $CD, $57, $56, $E5, $F0, $4C, $EC, $5C, $D5, $AB, $F9, $4E, $C0, $BF, + $34, $3B, $17, $15, $D8, $EC, $D4, $33, $6D, $6F, $22, $A5, $5E, $CD, $95, $7E, + $80, $FC, $A0, $9A, $3C, $EE, $34, $A3, $C4, $AB, $2A, $91, $4D, $0F, $23, $00 + ); + diff --git a/10.1.UP2/Activator/PatchData.pas b/10.1.UP2/Activator/PatchData.pas new file mode 100644 index 0000000..b2b4065 --- /dev/null +++ b/10.1.UP2/Activator/PatchData.pas @@ -0,0 +1,26 @@ +{ *********************************************************************** } +{ } +{ ߵԪ } +{ } +{ ƣLsuper 2013.02.16 } +{ ע } +{ ˣ } +{ } +{ Copyright (c) 1998-2014 Super Studio } +{ } +{ *********************************************************************** } + +unit PatchData; + +interface + +uses + SysUtils, Classes; + +const + +{$I PatchData.inc} { ļ } + +implementation + +end. diff --git a/10.1.UP2/Activator/TMainForm.inc b/10.1.UP2/Activator/TMainForm.inc new file mode 100644 index 0000000..ab9b0f9 --- /dev/null +++ b/10.1.UP2/Activator/TMainForm.inc @@ -0,0 +1 @@ +TMainForm = class(TObj) diff --git a/10.1.UP2/Activator/TMainFormclass.inc b/10.1.UP2/Activator/TMainFormclass.inc new file mode 100644 index 0000000..b903e9f --- /dev/null +++ b/10.1.UP2/Activator/TMainFormclass.inc @@ -0,0 +1 @@ +TMainForm = class; PMainForm = TMainForm; diff --git a/10.1.UP2/Activator/WinUtils.pas b/10.1.UP2/Activator/WinUtils.pas new file mode 100644 index 0000000..7f1bded --- /dev/null +++ b/10.1.UP2/Activator/WinUtils.pas @@ -0,0 +1,383 @@ +{ *********************************************************************** } +{ } +{ Win Ԫ } +{ } +{ ƣLsuper 2013.04.26 } +{ ע } +{ ˣ } +{ } +{ Copyright (c) 1998-2014 Super Studio } +{ } +{ *********************************************************************** } + +unit WinUtils; + +{$WARNINGS OFF} + +interface + +uses + SysUtils, Windows; + +function GetCommandLineOutput(const ACommandLine, AWorkDir: string; + out ExitCode: LongWord): string; +function GetFileBuildVersion(const AFile: string): Integer; +function GetShellFolderPath(nFolder: Integer): string; +function GetWindowsPath: string; + +function TaskMessageBox(const AHandle: THandle; const AText, ACaption: string; + const Icon, Buttons: Integer): Integer; +function IsWindowsVista: Boolean; + +procedure Delay(ASeconds: Double); + +function CreateProcessEx(lpApplicationName: PChar; lpCommandLine: PChar; + lpProcessAttributes, lpThreadAttributes: PSecurityAttributes; + bInheritHandles: BOOL; dwCreationFlags: DWORD; lpEnvironment: Pointer; + lpCurrentDirectory: PChar; const lpStartupInfo: TStartupInfo; + var lpProcessInformation: TProcessInformation; const ALibraryName: AnsiString): Boolean; +function InjectLibraryModule(AProcessID: LongWord; const ALibraryName: AnsiString): Boolean; + +procedure LogMessage(const AMessage: string); + +procedure ShowMessage(const ACaption, AMessage: string); +procedure ShowError(const AMessage: string); + +procedure SetMainFormHandle(const AHandle: HWND); + +implementation + +uses + ShlObj; + +const + TD_BUTTON_OK = 01; + TD_BUTTON_YES = 02; + TD_BUTTON_NO = 04; + TD_BUTTON_CANCEL = 08; + TD_BUTTON_RETRY = 16; + TD_BUTTON_CLOSE = 32; + + TD_ICON_BLANK = 00; + TD_ICON_WARNING = 84; + TD_ICON_QUESTION = 99; + TD_ICON_ERROR = 98; + TD_ICON_INFORMATION = 81; + + TD_ICON_SHIELD_QUESTION = 104; + TD_ICON_SHIELD_ERROR = 105; + TD_ICON_SHIELD_OK = 106; + TD_ICON_SHIELD_WARNING = 107; + +var + MainFormHandle: HWND = 0; + +//////////////////////////////////////////////////////////////////////////////// +// ˵ӳn +// ASeconds -- ӳ +//////////////////////////////////////////////////////////////////////////////// +procedure Delay(ASeconds: Double); + //////////////////////////////////////////////////////////////////////////////// + //: Lsuper 2004.11.10 + //: Ϣѭֹ + // + //////////////////////////////////////////////////////////////////////////////// + procedure ProcessMessages; + const + WM_QUIT = $0012; + var + Msg: TMsg; + begin + while PeekMessage(Msg, 0, 0, 0, PM_REMOVE) do + begin + if Msg.Message = WM_QUIT then + Halt(Msg.wParam); + TranslateMessage(Msg); + DispatchMessage(Msg); + end; + end; +var + nTimeOut: TDateTime; + nHours, nMins, nSeconds, nMilliSecs: Integer; +begin + nSeconds := Trunc(ASeconds); + nMilliSecs := Round(Frac(ASeconds) * 1000); + nHours := nSeconds div 3600; + nMins := (nSeconds mod 3600) div 60; + nSeconds := nSeconds mod 60; + nTimeOut := Now + EncodeTime(nHours, nMins, nSeconds, nMilliSecs); + // wait until the TimeOut time + while Now < nTimeOut do + ProcessMessages; +end; + +//////////////////////////////////////////////////////////////////////////////// +//: Lsuper 2003.09.21 +//: ȡе +// +//////////////////////////////////////////////////////////////////////////////// +function GetCommandLineOutput(const ACommandLine, AWorkDir: string; + out ExitCode: LongWord): string; +var + strCommandLine, + strWorkDir: string; + strOutLine, + strBuffer: AnsiString; + bRunResult: Boolean; + nBytesRead: Cardinal; + nStdOutPipeRead, + nStdOutPipeWrite: THandle; + PI: TProcessInformation; + SA: TSecurityAttributes; + SI: TStartupInfo; +begin + with SA do + begin + nLength := SizeOf(SA); + bInheritHandle := True; + lpSecurityDescriptor := nil; + end; + if not CreatePipe(nStdOutPipeRead, nStdOutPipeWrite, @SA, 0) then + RaiseLastOSError; + try + with SI do + begin + FillChar(SI, SizeOf(SI), 0); + cb := SizeOf(SI); + dwFlags := STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES; + wShowWindow := SW_HIDE; + hStdInput := GetStdHandle(STD_INPUT_HANDLE); + hStdOutput := nStdOutPipeWrite; + hStdError := nStdOutPipeWrite; + end; + if DirectoryExists(AWorkDir) then + strWorkDir := AWorkDir + else strWorkDir := GetCurrentDir; + strCommandLine := ACommandLine; + UniqueString(strCommandLine); + bRunResult := CreateProcess(nil, PChar(strCommandLine), nil, nil, True, 0, nil, + PChar(strWorkDir), SI, PI); + CloseHandle(nStdOutPipeWrite); + if bRunResult then + try + strOutLine := ''; + SetLength(strBuffer, MAXBYTE); + repeat + nBytesRead := 0; + bRunResult := ReadFile(nStdOutPipeRead, PAnsiChar(strBuffer)^, Length(strBuffer), nBytesRead, nil); + if nBytesRead > 0 then + strOutLine := strOutLine + Copy(strBuffer, 1, nBytesRead); + until not bRunResult or (nBytesRead = 0); + WaitForSingleObject(PI.hProcess, INFINITE); + GetExitCodeProcess(PI.hProcess, ExitCode); + finally + CloseHandle(PI.hThread); + CloseHandle(PI.hProcess); + end + else RaiseLastOSError; + finally + CloseHandle(nStdOutPipeRead); + Result := string(strOutLine); + end; +end; + +function GetFileBuildVersion(const AFile: string): Integer; +var + nInfoSize, dwHandle: DWORD; + cFileInfo: PVSFixedFileInfo; + nVerSize: DWORD; + strBuffer: AnsiString; +begin + Result := 0; + nInfoSize := GetFileVersionInfoSize(PChar(AFile), dwHandle); + if nInfoSize = 0 then + Exit; + SetLength(strBuffer, nInfoSize); + if not GetFileVersionInfo(PChar(AFile), dwHandle, nInfoSize, Pointer(strBuffer)) then + Exit; + if VerQueryValue(Pointer(strBuffer), '\', Pointer(cFileInfo), nVerSize) then + Result := LOWORD(cFileInfo.dwFileVersionLS); +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2010.04.09 +//ܣȡ Shell ļλã GetSpecialFolderPath(CSIDL_COMMON_APPDATA) +// +//////////////////////////////////////////////////////////////////////////////// +function GetShellFolderPath(nFolder: Integer): string; +begin + SetLength(Result, MAX_PATH); + SHGetSpecialFolderPath(0, PChar(Result), nFolder, False); + SetLength(Result, StrLen(PChar(Result))); + if (Result <> '') and (Result[Length(Result)] <> '\') then + Result := Result + '\'; +end; + +function GetWindowsPath: string; +var + nRet: LongWord; +begin + SetLength(Result, MAX_PATH); + nRet := GetWindowsDirectory(PChar(Result), MAX_PATH); + if nRet = 0 then + Result := '' + else begin + SetLength(Result, nRet); + if (Result <> '') and (Result[Length(Result)] <> '\') then + Result := Result + '\'; + end; +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2013.05.01 +//ܣע +// +//ע⣺ 500ms ȴʱ䣬ȷ dll سɹִ +//////////////////////////////////////////////////////////////////////////////// +function CreateProcessEx(lpApplicationName: PChar; lpCommandLine: PChar; + lpProcessAttributes, lpThreadAttributes: PSecurityAttributes; + bInheritHandles: BOOL; dwCreationFlags: DWORD; lpEnvironment: Pointer; + lpCurrentDirectory: PChar; const lpStartupInfo: TStartupInfo; + var lpProcessInformation: TProcessInformation; const ALibraryName: AnsiString): Boolean; +begin + Result := False; + if not CreateProcess(lpApplicationName, lpCommandLine, lpProcessAttributes, lpThreadAttributes, bInheritHandles, dwCreationFlags or CREATE_SUSPENDED, lpEnvironment, lpCurrentDirectory, lpStartupInfo, lpProcessInformation) then + Exit; + Result := InjectLibraryModule(lpProcessInformation.hProcess, ALibraryName); +{ + Result := uallHook.InjectLibrary(lpProcessInformation.dwProcessId, PChar(ALibraryName)); +} + Sleep(500); + ResumeThread(lpProcessInformation.hThread); +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2013.05.01 +//ܣע DLL +// +//////////////////////////////////////////////////////////////////////////////// +function InjectLibraryModule(AProcessID: LongWord; const ALibraryName: AnsiString): Boolean; +var + dwProcessID2: DWord; + dwMemSize: DWord; + dwWritten: DWord; + dwThreadID: DWord; + pLLA: Pointer; + pTargetMemory: Pointer; +begin + Assert(ALibraryName <> ''); + Result := False; + dwProcessID2 := OpenProcess(PROCESS_ALL_ACCESS, False, AProcessID); + if (dwProcessID2 <> 0) then + AProcessID := dwProcessID2; + dwMemSize := Length(ALibraryName) + 1; + pTargetMemory := VirtualAllocEx(AProcessID, nil, dwMemSize, MEM_COMMIT or MEM_RESERVE, PAGE_EXECUTE_READWRITE); + pLLA := GetProcAddress(GetModuleHandleA('kernel32.dll'), 'LoadLibraryA'); + if (pLLA <> nil) and (pTargetMemory <> nil) then + begin + if WriteProcessMemory(AProcessID, pTargetMemory, PChar(ALibraryName), dwMemSize, dwWritten) and (dwWritten = dwMemSize) then + Result := CreateRemoteThread(AProcessID, nil, 0, pLLA, pTargetMemory, 0, dwThreadID) <> 0; + end; + if (dwProcessID2 <> 0) then + CloseHandle(dwProcessID2); +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2009.10.25 +//ܣжǷ Vista/7 +// +//////////////////////////////////////////////////////////////////////////////// +function IsWindowsVista: Boolean; +var + hKernel32: HMODULE; +begin + hKernel32 := GetModuleHandle('kernel32'); + if hKernel32 > 0 then + Result := GetProcAddress(hKernel32, 'GetLocaleInfoEx') <> nil + else Result := false; +end; + +procedure LogMessage(const AMessage: string); +begin + OutputDebugString(PChar(AMessage)); +end; + +procedure SetMainFormHandle(const AHandle: HWND); +begin + MainFormHandle := AHandle; +end; + +procedure ShowError(const AMessage: string); +begin + TaskMessageBox(MainFormHandle, AMessage, 'Error', TD_ICON_ERROR, TD_BUTTON_OK); +end; + +procedure ShowMessage(const ACaption, AMessage: string); +begin + TaskMessageBox(MainFormHandle, AMessage, ACaption, TD_ICON_INFORMATION, TD_BUTTON_OK); +end; + +//////////////////////////////////////////////////////////////////////////////// +//ƣLsuper 2009.10.25 +//: ڲʹõʾԻĺӦ Vista/7 ϵͳ +// +//ע⣺ο Application MessageBox Dialogs 룬Զʾжϴ +// http://www.tmssoftware.com/site/atbdev5.asp +//////////////////////////////////////////////////////////////////////////////// +function TaskMessageBox(const AHandle: THandle; const AText, ACaption: string; + const Icon, Buttons: Integer): Integer; +const + conTaskDialogProcName = 'TaskDialog'; +var + DLLHandle: THandle; + wTitle, wContent: array[0..1024] of widechar; + TaskDialogProc: function(HWND: THandle; hInstance: THandle; cTitle, + cDescription, cContent: PWideChar; Buttons: Integer; Icon: Integer; + ResButton: PInteger): Integer; cdecl stdcall; + Flags: Integer; +begin + Result := 0; + if IsWindowsVista then + begin + DLLHandle := LoadLibrary(comctl32); + @TaskDialogProc := GetProcAddress(DLLHandle, conTaskDialogProcName); + end + else TaskDialogProc := nil; + if Assigned(TaskDialogProc) then + begin + StringToWideChar(ACaption, wTitle, SizeOf(wTitle)); + StringToWideChar(AText, wContent, SizeOf(wContent)); + TaskDialogProc(AHandle, 0, wTitle, nil, wContent, Buttons, Icon, @Result); + end + else begin + Flags := 0; + if Buttons = TD_BUTTON_OK then + Flags := MB_OK; + if Buttons = TD_BUTTON_OK or TD_BUTTON_CANCEL then + Flags := MB_OKCANCEL; + if Buttons = TD_BUTTON_CLOSE or TD_BUTTON_RETRY or TD_BUTTON_CANCEL then + Flags := MB_ABORTRETRYIGNORE; + if Buttons = TD_BUTTON_YES or TD_BUTTON_NO or TD_BUTTON_CANCEL then + Flags := MB_YESNOCANCEL; + if Buttons = TD_BUTTON_YES or TD_BUTTON_NO then + Flags := MB_YESNO; + if Buttons = TD_BUTTON_RETRY or TD_BUTTON_CANCEL then + Flags := MB_RETRYCANCEL; + case Icon of + TD_ICON_BLANK: + ; + TD_ICON_WARNING, TD_ICON_SHIELD_WARNING: + Flags := Flags or MB_ICONWARNING; + TD_ICON_QUESTION, TD_ICON_SHIELD_QUESTION: + Flags := Flags or MB_ICONQUESTION; + TD_ICON_ERROR, TD_ICON_SHIELD_ERROR: + Flags := Flags or MB_ICONERROR; + TD_ICON_INFORMATION, TD_ICON_SHIELD_OK: + Flags := Flags or MB_ICONINFORMATION; + end; + Result := Windows.MessageBox(AHandle, PChar(AText), PChar(ACaption), Flags); + end; +end; + +end. + diff --git a/10.1.UP2/Activator/uses.inc b/10.1.UP2/Activator/uses.inc new file mode 100644 index 0000000..00731aa --- /dev/null +++ b/10.1.UP2/Activator/uses.inc @@ -0,0 +1,9 @@ +{ KOL MCK } // Do not remove this line! +{ uses.inc + This file is generated automatically - do not modify it manually. + It is included to be recognized by compiler, but replacing word + with compiler directive <$I uses.inc> fakes auto-completion + preventing it from automatic references adding to VCL units into + uses clause aimed for KOL environment only. } + +uses diff --git a/10.1.UP2/Dcu/dirinfo.txt b/10.1.UP2/Dcu/dirinfo.txt new file mode 100644 index 0000000..38bc9b2 --- /dev/null +++ b/10.1.UP2/Dcu/dirinfo.txt @@ -0,0 +1 @@ +This directory is intended as a common place for sample application's EXE files \ No newline at end of file diff --git a/10.1.UP2/Keygen/AnsiStrings.pas b/10.1.UP2/Keygen/AnsiStrings.pas new file mode 100644 index 0000000..006be95 --- /dev/null +++ b/10.1.UP2/Keygen/AnsiStrings.pas @@ -0,0 +1,7 @@ +unit AnsiStrings; + +interface + +implementation + +end. diff --git a/10.1.UP2/Keygen/FGInt.pas b/10.1.UP2/Keygen/FGInt.pas new file mode 100644 index 0000000..3b229a3 --- /dev/null +++ b/10.1.UP2/Keygen/FGInt.pas @@ -0,0 +1,2282 @@ +{License, info, etc + ------------------ +This implementation is made by me, Walied Othman, to contact me +mail to rainwolf@submanifold.be or triade@submanifold.be , +always mention wether it 's about the FGInt or about the 6xs, +preferably in the subject line. +This source code is free, but only to other free software, +it's a two-way street, if you use this code in an application from which +you won't make any money of (e.g. software for the good of mankind) +then go right ahead, I won't stop you, I do demand acknowledgement for +my work. However, if you're using this code in a commercial application, +an application from which you'll make money, then yes, I charge a +license-fee, as described in the license agreement for commercial use, see +the textfile in this zip-file. +If you 're going to use these implementations, let me know, so I ca, put a link +on my page if desired, I 'm always curious as to see where the spawn of my +mind ends up in. If any algorithm is patented in your country, you should +acquire a license before using this software. Modified versions of this +software must contain an acknowledgement of the original author (=me). + +This implementation is available at +http://www.submanifold.be + +copyright 2000, Walied Othman +This header may not be removed.} + +Unit FGInt; + +{$H+} + +{$WARN COMBINING_SIGNED_UNSIGNED OFF} + +Interface + +Uses SysUtils, Math; + +Type + TCompare = (Lt, St, Eq, Er); + TSign = (negative, positive); + TFGInt = Record + Sign : TSign; + Number : Array Of LongWord; + End; + +Procedure zeronetochar8(Var g : AnsiChar; Const x : AnsiString); +Procedure zeronetochar6(Var g : integer; Const x : AnsiString); +Procedure initialize8(Var trans : Array Of AnsiString); +Procedure initialize6(Var trans : Array Of AnsiString); +Procedure initialize6PGP(Var trans : Array Of AnsiString); +Procedure ConvertBase256to64(Const str256 : AnsiString; Var str64 : AnsiString); +Procedure ConvertBase64to256(Const str64 : AnsiString; Var str256 : AnsiString); +Procedure ConvertBase256to2(Const str256 : AnsiString; Var str2 : AnsiString); +Procedure ConvertBase64to2(Const str64 : AnsiString; Var str2 : AnsiString); +Procedure ConvertBase2to256(str2 : AnsiString; Var str256 : AnsiString); +Procedure ConvertBase2to64(str2 : AnsiString; Var str64 : AnsiString); +Procedure ConvertBase256StringToHexString(Str256 : AnsiString; Var HexStr : AnsiString); +Procedure ConvertHexStringToBase256String(HexStr : AnsiString; Var Str256 : AnsiString); +Procedure PGPConvertBase256to64(Var str256, str64 : AnsiString); +Procedure PGPConvertBase64to256(str64 : AnsiString; Var str256 : AnsiString); +Procedure PGPConvertBase64to2(str64 : AnsiString; Var str2 : AnsiString); +Procedure FGIntToBase2String(Const FGInt : TFGInt; Var S : AnsiString); +Procedure Base2StringToFGInt(S : AnsiString; Var FGInt : TFGInt); +Procedure FGIntToBase256String(Const FGInt : TFGInt; Var str256 : AnsiString); +Procedure Base256StringToFGInt(str256 : AnsiString; Var FGInt : TFGInt); +Procedure PGPMPIToFGInt(PGPMPI : AnsiString; Var FGInt : TFGInt); +Procedure FGIntToPGPMPI(FGInt : TFGInt; Var PGPMPI : AnsiString); +Procedure Base10StringToFGInt(Base10 : AnsiString; Var FGInt : TFGInt); +Procedure FGIntToBase10String(Const FGInt : TFGInt; Var Base10 : AnsiString); +Procedure FGIntDestroy(Var FGInt : TFGInt); +Function FGIntCompareAbs(Const FGInt1, FGInt2 : TFGInt) : TCompare; +Procedure FGIntAdd(Const FGInt1, FGInt2 : TFGInt; Var Sum : TFGInt); +Procedure FGIntChangeSign(Var FGInt : TFGInt); +Procedure FGIntSub(Var FGInt1, FGInt2, dif : TFGInt); +Procedure FGIntMulByInt(Const FGInt : TFGInt; Var res : TFGInt; by : LongWord); +Procedure FGIntMulByIntbis(Var FGInt : TFGInt; by : LongWord); +Procedure FGIntDivByInt(Const FGInt : TFGInt; Var res : TFGInt; by : LongWord; Var modres : LongWord); +Procedure FGIntDivByIntBis(Var FGInt : TFGInt; by : LongWord; Var modres : LongWord); +Procedure FGIntModByInt(Const FGInt : TFGInt; by : LongWord; Var modres : LongWord); +Procedure FGIntAbs(Var FGInt : TFGInt); +Procedure FGIntCopy(Const FGInt1 : TFGInt; Var FGInt2 : TFGInt); +Procedure FGIntShiftLeft(Var FGInt : TFGInt); +Procedure FGIntShiftRight(Var FGInt : TFGInt); +Procedure FGIntShiftRightBy31(Var FGInt : TFGInt); +Procedure FGIntShiftLeftBy31Times(Var FGInt : TFGInt; times : LongWord); +Procedure FGIntAddBis(Var FGInt1 : TFGInt; Const FGInt2 : TFGInt); +Procedure FGIntSubBis(Var FGInt1 : TFGInt; Const FGInt2 : TFGInt); +Procedure FGIntMul(Const FGInt1, FGInt2 : TFGInt; Var Prod : TFGInt); +Procedure FGIntSquare(Const FGInt : TFGInt; Var Square : TFGInt); +Procedure FGIntExp(Const FGInt, exp : TFGInt; Var res : TFGInt); +Procedure FGIntFac(Const FGInt : TFGInt; Var res : TFGInt); +Procedure FGIntShiftLeftBy31(Var FGInt : TFGInt); +Procedure FGIntDivMod(Var FGInt1, FGInt2, QFGInt, MFGInt : TFGInt); +Procedure FGIntDiv(Var FGInt1, FGInt2, QFGInt : TFGInt); +Procedure FGIntMulByIntSubBis(Var FGInt1 : TFGInt; Const FGInt2 : TFGInt; divInt : LongWord); +Procedure FGIntMod(Var FGInt1, FGInt2, MFGInt : TFGInt); +Procedure FGIntSquareMod(Var FGInt, Modb, FGIntSM : TFGInt); +Procedure FGIntAddMod(Var FGInt1, FGInt2, base, FGIntres : TFGInt); +Procedure FGIntMulMod(Var FGInt1, FGInt2, base, FGIntres : TFGInt); +Procedure FGIntModExp(Var FGInt, exp, modb, res : TFGInt); +Procedure FGIntModBis(Const FGInt : TFGInt; Var FGIntOut : TFGInt; b, head : LongWord); +Procedure FGIntMulModBis(Const FGInt1, FGInt2 : TFGInt; Var Prod : TFGInt; b, head : LongWord); +Procedure FGIntMontgomeryMod(Const GInt, base, baseInv : TFGInt; Var MGInt : TFGInt; b : Longword; head : LongWord); +Procedure FGIntMontgomeryModExp(Var FGInt, exp, modb, res : TFGInt); +Procedure FGIntGCD(Const FGInt1, FGInt2 : TFGInt; Var GCD : TFGInt); +Procedure FGIntLCM(Const FGInt1, FGInt2 : TFGInt; Var LCM : TFGInt); +Procedure FGIntTrialDiv9999(Const FGInt : TFGInt; Var ok : boolean); +Procedure FGIntRandom1(Var Seed, RandomFGInt : TFGInt); +Procedure FGIntRabinMiller(Var FGIntp : TFGInt; nrtest : Longword; Var ok : boolean); +Procedure FGIntBezoutBachet(Var FGInt1, FGInt2, a, b : TFGInt); +Procedure FGIntModInv(Const FGInt1, base : TFGInt; Var Inverse : TFGInt); +Procedure FGIntPrimetest(Var FGIntp : TFGInt; nrRMtests : integer; Var ok : boolean); +Procedure FGIntLegendreSymbol(Var a, p : TFGInt; Var L : integer); +Procedure FGIntSquareRootModP(Square, Prime : TFGInt; Var SquareRoot : TFGInt); + + + +Implementation + +Var + primes : Array[1..1228] Of integer = + (3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, + 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, + 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, + 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, + 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, + 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, + 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997, 1009, + 1013, 1019, 1021, 1031, 1033, 1039, 1049, 1051, 1061, 1063, 1069, 1087, 1091, 1093, 1097, 1103, 1109, 1117, 1123, + 1129, 1151, 1153, 1163, 1171, 1181, 1187, 1193, 1201, 1213, 1217, 1223, 1229, 1231, 1237, 1249, 1259, 1277, 1279, + 1283, 1289, 1291, 1297, 1301, 1303, 1307, 1319, 1321, 1327, 1361, 1367, 1373, 1381, 1399, 1409, 1423, 1427, 1429, + 1433, 1439, 1447, 1451, 1453, 1459, 1471, 1481, 1483, 1487, 1489, 1493, 1499, 1511, 1523, 1531, 1543, 1549, 1553, + 1559, 1567, 1571, 1579, 1583, 1597, 1601, 1607, 1609, 1613, 1619, 1621, 1627, 1637, 1657, 1663, 1667, 1669, 1693, + 1697, 1699, 1709, 1721, 1723, 1733, 1741, 1747, 1753, 1759, 1777, 1783, 1787, 1789, 1801, 1811, 1823, 1831, 1847, + 1861, 1867, 1871, 1873, 1877, 1879, 1889, 1901, 1907, 1913, 1931, 1933, 1949, 1951, 1973, 1979, 1987, 1993, 1997, + 1999, 2003, 2011, 2017, 2027, 2029, 2039, 2053, 2063, 2069, 2081, 2083, 2087, 2089, 2099, 2111, 2113, 2129, 2131, + 2137, 2141, 2143, 2153, 2161, 2179, 2203, 2207, 2213, 2221, 2237, 2239, 2243, 2251, 2267, 2269, 2273, 2281, 2287, + 2293, 2297, 2309, 2311, 2333, 2339, 2341, 2347, 2351, 2357, 2371, 2377, 2381, 2383, 2389, 2393, 2399, 2411, 2417, + 2423, 2437, 2441, 2447, 2459, 2467, 2473, 2477, 2503, 2521, 2531, 2539, 2543, 2549, 2551, 2557, 2579, 2591, 2593, + 2609, 2617, 2621, 2633, 2647, 2657, 2659, 2663, 2671, 2677, 2683, 2687, 2689, 2693, 2699, 2707, 2711, 2713, 2719, + 2729, 2731, 2741, 2749, 2753, 2767, 2777, 2789, 2791, 2797, 2801, 2803, 2819, 2833, 2837, 2843, 2851, 2857, 2861, + 2879, 2887, 2897, 2903, 2909, 2917, 2927, 2939, 2953, 2957, 2963, 2969, 2971, 2999, 3001, 3011, 3019, 3023, 3037, + 3041, 3049, 3061, 3067, 3079, 3083, 3089, 3109, 3119, 3121, 3137, 3163, 3167, 3169, 3181, 3187, 3191, 3203, 3209, + 3217, 3221, 3229, 3251, 3253, 3257, 3259, 3271, 3299, 3301, 3307, 3313, 3319, 3323, 3329, 3331, 3343, 3347, 3359, + 3361, 3371, 3373, 3389, 3391, 3407, 3413, 3433, 3449, 3457, 3461, 3463, 3467, 3469, 3491, 3499, 3511, 3517, 3527, + 3529, 3533, 3539, 3541, 3547, 3557, 3559, 3571, 3581, 3583, 3593, 3607, 3613, 3617, 3623, 3631, 3637, 3643, 3659, + 3671, 3673, 3677, 3691, 3697, 3701, 3709, 3719, 3727, 3733, 3739, 3761, 3767, 3769, 3779, 3793, 3797, 3803, 3821, + 3823, 3833, 3847, 3851, 3853, 3863, 3877, 3881, 3889, 3907, 3911, 3917, 3919, 3923, 3929, 3931, 3943, 3947, 3967, + 3989, 4001, 4003, 4007, 4013, 4019, 4021, 4027, 4049, 4051, 4057, 4073, 4079, 4091, 4093, 4099, 4111, 4127, 4129, + 4133, 4139, 4153, 4157, 4159, 4177, 4201, 4211, 4217, 4219, 4229, 4231, 4241, 4243, 4253, 4259, 4261, 4271, 4273, + 4283, 4289, 4297, 4327, 4337, 4339, 4349, 4357, 4363, 4373, 4391, 4397, 4409, 4421, 4423, 4441, 4447, 4451, 4457, + 4463, 4481, 4483, 4493, 4507, 4513, 4517, 4519, 4523, 4547, 4549, 4561, 4567, 4583, 4591, 4597, 4603, 4621, 4637, + 4639, 4643, 4649, 4651, 4657, 4663, 4673, 4679, 4691, 4703, 4721, 4723, 4729, 4733, 4751, 4759, 4783, 4787, 4789, + 4793, 4799, 4801, 4813, 4817, 4831, 4861, 4871, 4877, 4889, 4903, 4909, 4919, 4931, 4933, 4937, 4943, 4951, 4957, + 4967, 4969, 4973, 4987, 4993, 4999, 5003, 5009, 5011, 5021, 5023, 5039, 5051, 5059, 5077, 5081, 5087, 5099, 5101, + 5107, 5113, 5119, 5147, 5153, 5167, 5171, 5179, 5189, 5197, 5209, 5227, 5231, 5233, 5237, 5261, 5273, 5279, 5281, + 5297, 5303, 5309, 5323, 5333, 5347, 5351, 5381, 5387, 5393, 5399, 5407, 5413, 5417, 5419, 5431, 5437, 5441, 5443, + 5449, 5471, 5477, 5479, 5483, 5501, 5503, 5507, 5519, 5521, 5527, 5531, 5557, 5563, 5569, 5573, 5581, 5591, 5623, + 5639, 5641, 5647, 5651, 5653, 5657, 5659, 5669, 5683, 5689, 5693, 5701, 5711, 5717, 5737, 5741, 5743, 5749, 5779, + 5783, 5791, 5801, 5807, 5813, 5821, 5827, 5839, 5843, 5849, 5851, 5857, 5861, 5867, 5869, 5879, 5881, 5897, 5903, + 5923, 5927, 5939, 5953, 5981, 5987, 6007, 6011, 6029, 6037, 6043, 6047, 6053, 6067, 6073, 6079, 6089, 6091, 6101, + 6113, 6121, 6131, 6133, 6143, 6151, 6163, 6173, 6197, 6199, 6203, 6211, 6217, 6221, 6229, 6247, 6257, 6263, 6269, + 6271, 6277, 6287, 6299, 6301, 6311, 6317, 6323, 6329, 6337, 6343, 6353, 6359, 6361, 6367, 6373, 6379, 6389, 6397, + 6421, 6427, 6449, 6451, 6469, 6473, 6481, 6491, 6521, 6529, 6547, 6551, 6553, 6563, 6569, 6571, 6577, 6581, 6599, + 6607, 6619, 6637, 6653, 6659, 6661, 6673, 6679, 6689, 6691, 6701, 6703, 6709, 6719, 6733, 6737, 6761, 6763, 6779, + 6781, 6791, 6793, 6803, 6823, 6827, 6829, 6833, 6841, 6857, 6863, 6869, 6871, 6883, 6899, 6907, 6911, 6917, 6947, + 6949, 6959, 6961, 6967, 6971, 6977, 6983, 6991, 6997, 7001, 7013, 7019, 7027, 7039, 7043, 7057, 7069, 7079, 7103, + 7109, 7121, 7127, 7129, 7151, 7159, 7177, 7187, 7193, 7207, 7211, 7213, 7219, 7229, 7237, 7243, 7247, 7253, 7283, + 7297, 7307, 7309, 7321, 7331, 7333, 7349, 7351, 7369, 7393, 7411, 7417, 7433, 7451, 7457, 7459, 7477, 7481, 7487, + 7489, 7499, 7507, 7517, 7523, 7529, 7537, 7541, 7547, 7549, 7559, 7561, 7573, 7577, 7583, 7589, 7591, 7603, 7607, + 7621, 7639, 7643, 7649, 7669, 7673, 7681, 7687, 7691, 7699, 7703, 7717, 7723, 7727, 7741, 7753, 7757, 7759, 7789, + 7793, 7817, 7823, 7829, 7841, 7853, 7867, 7873, 7877, 7879, 7883, 7901, 7907, 7919, 7927, 7933, 7937, 7949, 7951, + 7963, 7993, 8009, 8011, 8017, 8039, 8053, 8059, 8069, 8081, 8087, 8089, 8093, 8101, 8111, 8117, 8123, 8147, 8161, + 8167, 8171, 8179, 8191, 8209, 8219, 8221, 8231, 8233, 8237, 8243, 8263, 8269, 8273, 8287, 8291, 8293, 8297, 8311, + 8317, 8329, 8353, 8363, 8369, 8377, 8387, 8389, 8419, 8423, 8429, 8431, 8443, 8447, 8461, 8467, 8501, 8513, 8521, + 8527, 8537, 8539, 8543, 8563, 8573, 8581, 8597, 8599, 8609, 8623, 8627, 8629, 8641, 8647, 8663, 8669, 8677, 8681, + 8689, 8693, 8699, 8707, 8713, 8719, 8731, 8737, 8741, 8747, 8753, 8761, 8779, 8783, 8803, 8807, 8819, 8821, 8831, + 8837, 8839, 8849, 8861, 8863, 8867, 8887, 8893, 8923, 8929, 8933, 8941, 8951, 8963, 8969, 8971, 8999, 9001, 9007, + 9011, 9013, 9029, 9041, 9043, 9049, 9059, 9067, 9091, 9103, 9109, 9127, 9133, 9137, 9151, 9157, 9161, 9173, 9181, + 9187, 9199, 9203, 9209, 9221, 9227, 9239, 9241, 9257, 9277, 9281, 9283, 9293, 9311, 9319, 9323, 9337, 9341, 9343, + 9349, 9371, 9377, 9391, 9397, 9403, 9413, 9419, 9421, 9431, 9433, 9437, 9439, 9461, 9463, 9467, 9473, 9479, 9491, + 9497, 9511, 9521, 9533, 9539, 9547, 9551, 9587, 9601, 9613, 9619, 9623, 9629, 9631, 9643, 9649, 9661, 9677, 9679, + 9689, 9697, 9719, 9721, 9733, 9739, 9743, 9749, 9767, 9769, 9781, 9787, 9791, 9803, 9811, 9817, 9829, 9833, 9839, + 9851, 9857, 9859, 9871, 9883, 9887, 9901, 9907, 9923, 9929, 9931, 9941, 9949, 9967, 9973); + chr64 : Array[1..64] Of AnsiChar = ('a', 'A', 'b', 'B', 'c', 'C', 'd', 'D', 'e', 'E', 'f', 'F', + 'g', 'G', 'h', 'H', 'i', 'I', 'j', 'J', 'k', 'K', 'l', 'L', 'm', 'M', 'n', 'N', 'o', 'O', 'p', + 'P', 'q', 'Q', 'r', 'R', 's', 'S', 't', 'T', 'u', 'U', 'v', 'V', 'w', 'W', 'x', 'X', 'y', 'Y', + 'z', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '='); + PGPchr64 : Array[1..64] Of AnsiChar = ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', + 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', + 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', + 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/'); + + + +Procedure zeronetochar8(Var g : AnsiChar; Const x : AnsiString); +Var + i : Integer; + b : byte; +Begin + b := 0; + For i := 1 To 8 Do + Begin + If copy(x, i, 1) = '1' Then + b := b Or (1 Shl (8 - I)); + End; + g := AnsiChar(b); +End; + + +Procedure zeronetochar6(Var g : integer; Const x : AnsiString); +Var + I : Integer; +Begin + G := 0; + For I := 1 To Length(X) Do + Begin + If I > 6 Then + Break; + If X[I] <> '0' Then + G := G Or (1 Shl (6 - I)); + End; + Inc(G); +End; + + +Procedure initialize8(Var trans : Array Of AnsiString); +Var + c1, c2, c3, c4, c5, c6, c7, c8 : integer; + x : AnsiString; + g : AnsiChar; +Begin + For c1 := 0 To 1 Do + For c2 := 0 To 1 Do + For c3 := 0 To 1 Do + For c4 := 0 To 1 Do + For c5 := 0 To 1 Do + For c6 := 0 To 1 Do + For c7 := 0 To 1 Do + For c8 := 0 To 1 Do + Begin + x := AnsiChar(48+c1) + AnsiChar(48+c2) + AnsiChar(48+c3) + AnsiChar(48+c4) + AnsiChar(48+c5) + AnsiChar(48+c6) + AnsiChar(48+c7) + AnsiChar(48+c8); + zeronetochar8(g, x); + trans[ord(g)] := x; + End; +End; + + +Procedure initialize6(Var trans : Array Of AnsiString); +Var + c1, c2, c3, c4, c5, c6 : integer; + x : AnsiString; + g : integer; +Begin + For c1 := 0 To 1 Do + For c2 := 0 To 1 Do + For c3 := 0 To 1 Do + For c4 := 0 To 1 Do + For c5 := 0 To 1 Do + For c6 := 0 To 1 Do + Begin + x := AnsiChar(48+c1) + AnsiChar(48+c2) + AnsiChar(48+c3) + AnsiChar(48+c4) + AnsiChar(48+c5) + AnsiChar(48+c6); + zeronetochar6(g, x); + trans[ord(chr64[g])] := x; + End; +End; + +Procedure initialize6PGP(Var trans : Array Of AnsiString); +Var + c1, c2, c3, c4, c5, c6 : integer; + x : AnsiString; + g : integer; +Begin + For c1 := 0 To 1 Do + For c2 := 0 To 1 Do + For c3 := 0 To 1 Do + For c4 := 0 To 1 Do + For c5 := 0 To 1 Do + For c6 := 0 To 1 Do + Begin + x := AnsiChar(48+c1) + AnsiChar(48+c2) + AnsiChar(48+c3) + AnsiChar(48+c4) + AnsiChar(48+c5) + AnsiChar(48+c6); + zeronetochar6(g, x); + trans[ord(PGPchr64[g])] := x; + End; +End; + + +// Convert base 8 strings to base 6 strings and visa versa + +Procedure ConvertBase256to64(Const str256 : AnsiString; Var str64 : AnsiString); +Var + temp : AnsiString; + trans : Array[0..255] Of AnsiString; + i, len6 : longint; + g : integer; +Begin + initialize8(trans); + temp := ''; + For i := 1 To length(str256) Do temp := temp + trans[ord(str256[i])]; + While (length(temp) Mod 6) <> 0 Do temp := temp + '0'; + len6 := length(temp) Div 6; + str64 := ''; + For i := 1 To len6 Do + Begin + zeronetochar6(g, copy(temp, 1, 6)); + str64 := str64 + chr64[g]; + delete(temp, 1, 6); + End; +End; + + +Procedure ConvertBase64to256(Const str64 : AnsiString; Var str256 : AnsiString); +Var + temp : AnsiString; + trans : Array[0..255] Of AnsiString; + i, len8 : longint; + g : AnsiChar; +Begin + initialize6(trans); + temp := ''; + For i := 1 To length(str64) Do temp := temp + trans[ord(str64[i])]; + str256 := ''; + len8 := length(temp) Div 8; + For i := 1 To len8 Do + Begin + zeronetochar8(g, copy(temp, 1, 8)); + str256 := str256 + g; + delete(temp, 1, 8); + End; +End; + + +// Convert base 8 & 6 bit strings to base 2 strings and visa versa + +Procedure ConvertBase256to2(Const str256 : AnsiString; Var str2 : AnsiString); +Var + trans : Array[0..255] Of AnsiString; + i : longint; +Begin + str2 := ''; + initialize8(trans); + For i := 1 To length(str256) Do str2 := str2 + trans[ord(str256[i])]; +End; + + +Procedure ConvertBase64to2(Const str64 : AnsiString; Var str2 : AnsiString); +Var + trans : Array[0..255] Of AnsiString; + i : longint; +Begin + str2 := ''; + initialize6(trans); + For i := 1 To length(str64) Do str2 := str2 + trans[ord(str64[i])]; +End; + + +Procedure ConvertBase2to256(str2 : AnsiString; Var str256 : AnsiString); +Var + i, len8 : longint; + g : AnsiChar; +Begin + str256 := ''; + While (length(str2) Mod 8) <> 0 Do str2 := '0' + str2; + len8 := length(str2) Div 8; + For i := 1 To len8 Do + Begin + zeronetochar8(g, copy(str2, 1, 8)); + str256 := str256 + g; + delete(str2, 1, 8); + End; +End; + + +Procedure ConvertBase2to64(str2 : AnsiString; Var str64 : AnsiString); +Var + i, len6 : longint; + g : integer; +Begin + str64 := ''; + While (length(str2) Mod 6) <> 0 Do str2 := '0' + str2; + len6 := length(str2) Div 6; + For i := 1 To len6 Do + Begin + zeronetochar6(g, copy(str2, 1, 6)); + str64 := str64 + chr64[g]; + delete(str2, 1, 6); + End; +End; + + +// Convert base 256 strings to base 16 (HexaDecimal) strings and visa versa + +Procedure ConvertBase256StringToHexString(Str256 : AnsiString; Var HexStr : AnsiString); +Var + i : longint; + b : byte; +Begin + HexStr := ''; + For i := 1 To length(str256) Do + Begin + b := ord(str256[i]); + If (b Shr 4) < 10 Then HexStr := HexStr + AnsiChar(48 + (b Shr 4)) + Else HexStr := HexStr + AnsiChar(55 + (b Shr 4)); + If (b And 15) < 10 Then HexStr := HexStr + AnsiChar(48 + (b And 15)) + Else HexStr := HexStr + AnsiChar(55 + (b And 15)); + End; +End; + + +Procedure ConvertHexStringToBase256String(HexStr : AnsiString; Var Str256 : AnsiString); +Var + i : longint; + b, h1, h2 : byte; + temp : AnsiString; +Begin + Str256 := ''; + If (length(Hexstr) mod 2) = 1 Then temp := '0' + HexStr Else temp := HexStr; + For i := 1 To (length(temp) Div 2) Do + Begin + h2 := ord(temp[2 * i]); + h1 := ord(temp[2 * i - 1]); + If h1 < 58 Then + b := ((h1 - 48) Shl 4) + Else + b := ((h1 - 55) Shl 4); + If h2 < 58 Then + b := (b Or (h2 - 48)) + Else + b := (b Or ((h2 - 55) and 15)); + Str256 := Str256 + AnsiChar(b); + End; +End; + + +// Convert base 256 strings to base 64 strings and visa versa, PGP style + +Procedure PGPConvertBase256to64(Var str256, str64 : AnsiString); +Var + temp, x, a : AnsiString; + i, len6 : longint; + g : integer; + trans : Array[0..255] Of AnsiString; +Begin + initialize8(trans); + temp := ''; + For i := 1 To length(str256) Do temp := temp + trans[ord(str256[i])]; + If (length(temp) Mod 6) = 0 Then a := '' Else + If (length(temp) Mod 6) = 4 Then + Begin + temp := temp + '00'; + a := '=' + End + Else + Begin + temp := temp + '0000'; + a := '==' + End; + str64 := ''; + len6 := length(temp) Div 6; + For i := 1 To len6 Do + Begin + x := copy(temp, 1, 6); + zeronetochar6(g, x); + str64 := str64 + PGPchr64[g]; + delete(temp, 1, 6); + End; + str64 := str64 + a; +End; + + +Procedure PGPConvertBase64to256(str64 : AnsiString; Var str256 : AnsiString); +Var + temp, x : AnsiString; + i, j, len8 : longint; + g : AnsiChar; + trans : Array[0..255] Of AnsiString; +Begin + initialize6PGP(trans); + temp := ''; + str256 := ''; + If str64[length(str64) - 1] = '=' Then j := 2 Else + If str64[length(str64)] = '=' Then j := 1 Else j := 0; + For i := 1 To (length(str64) - j) Do temp := temp + trans[ord(str64[i])]; + If j <> 0 Then delete(temp, length(temp) - 2 * j + 1, 2 * j); + len8 := length(temp) Div 8; + For i := 1 To len8 Do + Begin + x := copy(temp, 1, 8); + zeronetochar8(g, x); + str256 := str256 + g; + delete(temp, 1, 8); + End; +End; + +// Convert base 64 strings to base 2 strings, PGP style + + +Procedure PGPConvertBase64to2(str64 : AnsiString; Var str2 : AnsiString); +Var + i, j : longint; + trans : Array[0..255] Of AnsiString; +Begin + str2 := ''; + initialize6(trans); + If str64[length(str64) - 1] = '=' Then j := 2 Else + If str64[length(str64)] = '=' Then j := 1 Else j := 0; + For i := 1 To (length(str64) - j) Do str2 := str2 + trans[ord(str64[i])]; + delete(str2, length(str2) - 2 * j + 1, 2 * j); +End; + + +// Convert a FGInt to a binary AnsiString (base 2) & visa versa + +Procedure FGIntToBase2String(Const FGInt : TFGInt; Var S : AnsiString); +Var + i : LongWord; + j : integer; +Begin + S := ''; + For i := 1 To FGInt.Number[0] Do + Begin + For j := 0 To 30 Do + If (1 And (FGInt.Number[i] Shr j)) = 1 Then + S := '1' + S + Else + S := '0' + S; + End; + While (length(S) > 1) And (S[1] = '0') Do + delete(S, 1, 1); + If S = '' Then S := '0'; +End; + + +Procedure Base2StringToFGInt(S : AnsiString; Var FGInt : TFGInt); +Var + i, j, size : LongWord; +Begin + While (S[1] = '0') And (length(S) > 1) Do + delete(S, 1, 1); + size := length(S) Div 31; + If (length(S) Mod 31) <> 0 Then size := size + 1; + SetLength(FGInt.Number, (size + 1)); + FGInt.Number[0] := size; + j := 1; + FGInt.Number[j] := 0; + i := 0; + While length(S) > 0 Do + Begin + If S[length(S)] = '1' Then + FGInt.Number[j] := FGInt.Number[j] Or (1 Shl i); + i := i + 1; + If i = 31 Then + Begin + i := 0; + j := j + 1; + If j <= size Then FGInt.Number[j] := 0; + End; + delete(S, length(S), 1); + End; + FGInt.Sign := positive; +End; + + +// Convert a FGInt to an base 256 AnsiString & visa versa + +Procedure FGIntToBase256String(Const FGInt : TFGInt; Var str256 : AnsiString); +Var + temp1 : AnsiString; + i, len8 : LongWord; + g : AnsiChar; +Begin + FGIntToBase2String(FGInt, temp1); + While (length(temp1) Mod 8) <> 0 Do temp1 := '0' + temp1; + len8 := length(temp1) Div 8; + str256 := ''; + For i := 1 To len8 Do + Begin + zeronetochar8(g, copy(temp1, 1, 8)); + str256 := str256 + g; + delete(temp1, 1, 8); + End; +End; + + +Procedure Base256StringToFGInt(str256 : AnsiString; Var FGInt : TFGInt); +Var + temp1 : AnsiString; + i : longint; + trans : Array[0..255] Of AnsiString; +Begin + temp1 := ''; + initialize8(trans); + For i := 1 To length(str256) Do temp1 := temp1 + trans[ord(str256[i])]; + While (temp1[1] = '0') And (temp1 <> '0') Do delete(temp1, 1, 1); + Base2StringToFGInt(temp1, FGInt); +End; + +// Convert an MPI (Multiple Precision Integer, PGP style) to an FGInt & +// visa versa + +Procedure PGPMPIToFGInt(PGPMPI : AnsiString; Var FGInt : TFGInt); +Var + temp : AnsiString; +Begin + temp := PGPMPI; + delete(temp, 1, 2); + Base256StringToFGInt(temp, FGInt); +End; + + +Procedure FGIntToPGPMPI(FGInt : TFGInt; Var PGPMPI : AnsiString); +Var + len, i : word; + c : AnsiChar; + b : byte; +Begin + FGIntToBase256String(FGInt, PGPMPI); + len := length(PGPMPI) * 8; + c := PGPMPI[1]; + For i := 7 Downto 0 Do If (ord(c) Shr i) = 0 Then len := len - 1 Else break; + b := len Mod 256; + PGPMPI := AnsiChar(b) + PGPMPI; + b := len Div 256; + PGPMPI := AnsiChar(b) + PGPMPI; +End; + + +// Convert a base 10 AnsiString to a FGInt + +Procedure Base10StringToFGInt(Base10 : AnsiString; Var FGInt : TFGInt); +Var + i, size : LongWord; + j : word; + S, x : AnsiString; + sign : TSign; + + Procedure GIntDivByIntBis1(Var GInt : TFGInt; by : LongWord; Var modres : word); + Var + i, size, rest, temp : LongWord; + Begin + size := GInt.Number[0]; + temp := 0; + For i := size Downto 1 Do + Begin + temp := temp * 10000; + rest := temp + GInt.Number[i]; + GInt.Number[i] := rest Div by; + temp := rest Mod by; + End; + modres := temp; + While (GInt.Number[size] = 0) And (size > 1) Do + size := size - 1; + If size <> GInt.Number[0] Then + Begin + SetLength(GInt.Number, size + 1); + GInt.Number[0] := size; + End; + End; + +Begin + While (Not (Base10[1] In ['-', '0'..'9'])) And (length(Base10) > 1) Do + delete(Base10, 1, 1); + If copy(Base10, 1, 1) = '-' Then + Begin + Sign := negative; + delete(Base10, 1, 1); + End + Else + Sign := positive; + While (length(Base10) > 1) And (copy(Base10, 1, 1) = '0') Do + delete(Base10, 1, 1); + size := length(Base10) Div 4; + If (length(Base10) Mod 4) <> 0 Then size := size + 1; + SetLength(FGInt.Number, size + 1); + FGInt.Number[0] := size; + For i := 1 To (size - 1) Do + Begin + x := copy(Base10, length(Base10) - 3, 4); + FGInt.Number[i] := StrToInt(string(x)); + delete(Base10, length(Base10) - 3, 4); + End; + FGInt.Number[size] := StrToInt(string(Base10)); + + S := ''; + While (FGInt.Number[0] <> 1) Or (FGInt.Number[1] <> 0) Do + Begin + GIntDivByIntBis1(FGInt, 2, j); + S := AnsiString(inttostr(j)) + S; + End; + If S = '' Then S := '0'; + FGIntDestroy(FGInt); + Base2StringToFGInt(S, FGInt); + FGInt.Sign := sign; +End; + + +// Convert a FGInt to a base 10 AnsiString + +Procedure FGIntToBase10String(Const FGInt : TFGInt; Var Base10 : AnsiString); +Var + S : AnsiString; + j : LongWord; + temp : TFGInt; +Begin + FGIntCopy(FGInt, temp); + Base10 := ''; + While (temp.Number[0] > 1) Or (temp.Number[1] > 0) Do + Begin + FGIntDivByIntBis(temp, 10000, j); + S := AnsiString(IntToStr(j)); + While Length(S) < 4 Do + S := '0' + S; + Base10 := S + Base10; + End; + Base10 := '0' + Base10; + While (length(Base10) > 1) And (Base10[1] = '0') Do + delete(Base10, 1, 1); + If FGInt.Sign = negative Then Base10 := '-' + Base10; +End; + + +// Destroy a FGInt to free memory + +Procedure FGIntDestroy(Var FGInt : TFGInt); +Begin + FGInt.Number := Nil; +End; + + +// Compare 2 FGInts in absolute value, returns +// Lt if FGInt1 > FGInt2, St if FGInt1 < FGInt2, Eq if FGInt1 = FGInt2, +// Er otherwise + +Function FGIntCompareAbs(Const FGInt1, FGInt2 : TFGInt) : TCompare; +Var + size1, size2, i : LongWord; +Begin + FGIntCompareAbs := Er; + size1 := FGInt1.Number[0]; + size2 := FGInt2.Number[0]; + If size1 > size2 Then FGIntCompareAbs := Lt Else + If size1 < size2 Then FGIntCompareAbs := St Else + Begin + i := size2; + While (FGInt1.Number[i] = FGInt2.Number[i]) And (i > 1) Do i := i - 1; + If FGInt1.Number[i] = FGInt2.Number[i] Then FGIntCompareAbs := Eq Else + If FGInt1.Number[i] < FGInt2.Number[i] Then FGIntCompareAbs := St Else + If FGInt1.Number[i] > FGInt2.Number[i] Then FGIntCompareAbs := Lt; + End; +End; + + +// Add 2 FGInts, FGInt1 + FGInt2 = Sum + +Procedure FGIntAdd(Const FGInt1, FGInt2 : TFGInt; Var Sum : TFGInt); +Var + i, size1, size2, size, rest, Trest : LongWord; +Begin + size1 := FGInt1.Number[0]; + size2 := FGInt2.Number[0]; + If size1 < size2 Then + FGIntAdd(FGInt2, FGInt1, Sum) + Else + Begin + If FGInt1.Sign = FGInt2.Sign Then + Begin + Sum.Sign := FGInt1.Sign; + setlength(Sum.Number, (size1 + 2)); + rest := 0; + For i := 1 To size2 Do + Begin + Trest := FGInt1.Number[i]; + Trest := Trest + FGInt2.Number[i]; + Trest := Trest + rest; + Sum.Number[i] := Trest And 2147483647; + rest := Trest Shr 31; + End; + For i := (size2 + 1) To size1 Do + Begin + Trest := FGInt1.Number[i] + rest; + Sum.Number[i] := Trest And 2147483647; + rest := Trest Shr 31; + End; + size := size1 + 1; + Sum.Number[0] := size; + Sum.Number[size] := rest; + While (Sum.Number[size] = 0) And (size > 1) Do + size := size - 1; + If Sum.Number[0] <> size Then SetLength(Sum.Number, size + 1); + Sum.Number[0] := size; + End + Else + Begin + If FGIntCompareAbs(FGInt2, FGInt1) = Lt Then + FGIntAdd(FGInt2, FGInt1, Sum) + Else + Begin + SetLength(Sum.Number, (size1 + 1)); + rest := 0; + For i := 1 To size2 Do + Begin + Trest := 2147483648; + TRest := Trest + FGInt1.Number[i]; + TRest := Trest - FGInt2.Number[i]; + TRest := Trest - rest; + Sum.Number[i] := Trest And 2147483647; + If (Trest > 2147483647) Then + rest := 0 + Else + rest := 1; + End; + For i := (size2 + 1) To size1 Do + Begin + Trest := 2147483648; + TRest := Trest + FGInt1.Number[i]; + TRest := Trest - rest; + Sum.Number[i] := Trest And 2147483647; + If (Trest > 2147483647) Then + rest := 0 + Else + rest := 1; + End; + size := size1; + While (Sum.Number[size] = 0) And (size > 1) Do + size := size - 1; + If size <> size1 Then SetLength(Sum.Number, size + 1); + Sum.Number[0] := size; + Sum.Sign := FGInt1.Sign; + End; + End; + End; +End; + + + +Procedure FGIntChangeSign(Var FGInt : TFGInt); +Begin + If FGInt.Sign = negative Then FGInt.Sign := positive Else FGInt.Sign := negative; +End; + + +// Substract 2 FGInts, FGInt1 - FGInt2 = dif + +Procedure FGIntSub(Var FGInt1, FGInt2, dif : TFGInt); +Begin + FGIntChangeSign(FGInt2); + FGIntAdd(FGInt1, FGInt2, dif); + FGIntChangeSign(FGInt2); +End; + + +// multiply a FGInt by an integer, FGInt * by = res, by < 2147483648 + +Procedure FGIntMulByInt(Const FGInt : TFGInt; Var res : TFGInt; by : LongWord); +Var + i, size, rest : LongWord; + Trest : int64; +Begin + size := FGInt.Number[0]; + setlength(res.Number, (size + 2)); + rest := 0; + For i := 1 To size Do + Begin + Trest := FGInt.Number[i]; + TRest := Trest * by; + TRest := Trest + rest; + res.Number[i] := Trest And 2147483647; + rest := Trest Shr 31; + End; + If rest <> 0 Then + Begin + size := size + 1; + Res.Number[size] := rest; + End + Else + SetLength(Res.Number, size + 1); + Res.Number[0] := size; + Res.Sign := FGInt.Sign; +End; + + +// multiply a FGInt by an integer, FGInt * by = res, by < 1000000000 + +Procedure FGIntMulByIntbis(Var FGInt : TFGInt; by : LongWord); +Var + i, size, rest : LongWord; + Trest : int64; +Begin + size := FGInt.Number[0]; + Setlength(FGInt.Number, size + 2); + rest := 0; + For i := 1 To size Do + Begin + Trest := FGInt.Number[i]; + TRest := Trest * by; + TRest := Trest + rest; + FGInt.Number[i] := Trest And 2147483647; + rest := Trest Shr 31; + End; + If rest <> 0 Then + Begin + size := size + 1; + FGInt.Number[size] := rest; + End + Else + SetLength(FGInt.Number, size + 1); + FGInt.Number[0] := size; +End; + + +// divide a FGInt by an integer, FGInt = res * by + modres + +Procedure FGIntDivByInt(Const FGInt : TFGInt; Var res : TFGInt; by : LongWord; Var modres : LongWord); +Var + i, size : LongWord; + rest : int64; +Begin + size := FGInt.Number[0]; + setlength(res.Number, (size + 1)); + modres := 0; + For i := size Downto 1 Do + Begin + rest := modres; + rest := rest Shl 31; + rest := rest Or FGInt.Number[i]; + res.Number[i] := rest Div by; + modres := rest Mod by; + End; + While (res.Number[size] = 0) And (size > 1) Do + size := size - 1; + If size <> FGInt.Number[0] Then SetLength(res.Number, size + 1); + res.Number[0] := size; + Res.Sign := FGInt.Sign; + If FGInt.sign = negative Then modres := by - modres; +End; + + +// divide a FGInt by an integer, FGInt = FGInt * by + modres + +Procedure FGIntDivByIntBis(Var FGInt : TFGInt; by : LongWord; Var modres : LongWord); +Var + i, size : LongWord; + temp, rest : int64; +Begin + size := FGInt.Number[0]; + temp := 0; + For i := size Downto 1 Do + Begin + temp := temp Shl 31; + rest := temp Or FGInt.Number[i]; + FGInt.Number[i] := rest Div by; + temp := rest Mod by; + End; + modres := temp; + While (FGInt.Number[size] = 0) And (size > 1) Do + size := size - 1; + If size <> FGInt.Number[0] Then + Begin + SetLength(FGInt.Number, size + 1); + FGInt.Number[0] := size; + End; +End; + + +// Reduce a FGInt modulo by (=an integer), FGInt mod by = modres + +Procedure FGIntModByInt(Const FGInt : TFGInt; by : LongWord; Var modres : LongWord); +Var + i, size : LongWord; + temp, rest : int64; +Begin + size := FGInt.Number[0]; + temp := 0; + For i := size Downto 1 Do + Begin + temp := temp Shl 31; + rest := temp Or FGInt.Number[i]; + temp := rest Mod by; + End; + modres := temp; + If FGInt.sign = negative Then modres := by - modres; +End; + + +// Returns the FGInt in absolute value + +Procedure FGIntAbs(Var FGInt : TFGInt); +Begin + FGInt.Sign := positive; +End; + + +// Copy a FGInt1 into FGInt2 + +Procedure FGIntCopy(Const FGInt1 : TFGInt; Var FGInt2 : TFGInt); +Begin + FGInt2.Sign := FGInt1.Sign; + FGInt2.Number := Nil; + FGInt2.Number := Copy(FGInt1.Number, 0, FGInt1.Number[0] + 1); +End; + + +// Shift the FGInt to the left in base 2 notation, ie FGInt = FGInt * 2 + +Procedure FGIntShiftLeft(Var FGInt : TFGInt); +Var + l, m, i, size : LongWord; +Begin + size := FGInt.Number[0]; + l := 0; + For i := 1 To Size Do + Begin + m := FGInt.Number[i] Shr 30; + FGInt.Number[i] := ((FGInt.Number[i] Shl 1) Or l) And 2147483647; + l := m; + End; + If l <> 0 Then + Begin + setlength(FGInt.Number, size + 2); + FGInt.Number[size + 1] := l; + FGInt.Number[0] := size + 1; + End; +End; + + +// Shift the FGInt to the right in base 2 notation, ie FGInt = FGInt div 2 + +Procedure FGIntShiftRight(Var FGInt : TFGInt); +Var + l, m, i, size : LongWord; +Begin + size := FGInt.Number[0]; + l := 0; + For i := size Downto 1 Do + Begin + m := FGInt.Number[i] And 1; + FGInt.Number[i] := (FGInt.Number[i] Shr 1) Or l; + l := m Shl 30; + End; + If (FGInt.Number[size] = 0) And (size > 1) Then + Begin + setlength(FGInt.Number, size); + FGInt.Number[0] := size - 1; + End; +End; + + +// FGInt = FGInt / 2147483648 + +Procedure FGIntShiftRightBy31(Var FGInt : TFGInt); +Var + size, i : LongWord; +Begin + size := FGInt.Number[0]; + If size > 1 Then + Begin + For i := 1 To size - 1 Do + Begin + FGInt.Number[i] := FGInt.Number[i + 1]; + End; + SetLength(FGInt.Number, Size); + FGInt.Number[0] := size - 1; + End + Else + FGInt.Number[1] := 0; +End; + + +// FGInt1 = FGInt1 + FGInt2, FGInt1 > FGInt2 + +Procedure FGIntAddBis(Var FGInt1 : TFGInt; Const FGInt2 : TFGInt); +Var + i, size1, size2, Trest, rest : LongWord; +Begin + size1 := FGInt1.Number[0]; + size2 := FGInt2.Number[0]; + rest := 0; + For i := 1 To size2 Do + Begin + Trest := FGInt1.Number[i] + FGInt2.Number[i] + rest; + rest := Trest Shr 31; + FGInt1.Number[i] := Trest And 2147483647; + End; + For i := size2 + 1 To size1 Do + Begin + Trest := FGInt1.Number[i] + rest; + rest := Trest Shr 31; + FGInt1.Number[i] := Trest And 2147483647; + End; + If rest <> 0 Then + Begin + SetLength(FGInt1.Number, size1 + 2); + FGInt1.Number[0] := size1 + 1; + FGInt1.Number[size1 + 1] := rest; + End; +End; + + +// FGInt1 = FGInt1 - FGInt2, use only when 0 < FGInt2 < FGInt1 + +Procedure FGIntSubBis(Var FGInt1 : TFGInt; Const FGInt2 : TFGInt); +Var + i, size1, size2, rest, Trest : LongWord; +Begin + size1 := FGInt1.Number[0]; + size2 := FGInt2.Number[0]; + rest := 0; + For i := 1 To size2 Do + Begin + Trest := (2147483648 Or FGInt1.Number[i]) - FGInt2.Number[i] - rest; + If (Trest > 2147483647) Then + rest := 0 + Else + rest := 1; + FGInt1.Number[i] := Trest And 2147483647; + End; + For i := size2 + 1 To size1 Do + Begin + Trest := (2147483648 Or FGInt1.Number[i]) - rest; + If (Trest > 2147483647) Then + rest := 0 + Else + rest := 1; + FGInt1.Number[i] := Trest And 2147483647; + End; + i := size1; + While (FGInt1.Number[i] = 0) And (i > 1) Do + i := i - 1; + If i <> size1 Then + Begin + SetLength(FGInt1.Number, i + 1); + FGInt1.Number[0] := i; + End; +End; + + +// Multiply 2 FGInts, FGInt1 * FGInt2 = Prod + +Procedure FGIntMul(Const FGInt1, FGInt2 : TFGInt; Var Prod : TFGInt); +Var + i, j, size, size1, size2, rest : LongWord; + Trest : int64; +Begin + size1 := FGInt1.Number[0]; + size2 := FGInt2.Number[0]; + size := size1 + size2; + SetLength(Prod.Number, (size + 1)); + For i := 1 To size Do + Prod.Number[i] := 0; + + For i := 1 To size2 Do + Begin + rest := 0; + For j := 1 To size1 Do + Begin + Trest := FGInt1.Number[j]; + Trest := Trest * FGInt2.Number[i]; + Trest := Trest + Prod.Number[j + i - 1]; + Trest := Trest + rest; + Prod.Number[j + i - 1] := Trest And 2147483647; + rest := Trest Shr 31; + End; + Prod.Number[i + size1] := rest; + End; + + Prod.Number[0] := size; + While (Prod.Number[size] = 0) And (size > 1) Do + size := size - 1; + If size <> Prod.Number[0] Then + Begin + SetLength(Prod.Number, size + 1); + Prod.Number[0] := size; + End; + If FGInt1.Sign = FGInt2.Sign Then + Prod.Sign := Positive + Else + prod.Sign := negative; +End; + + +// Square a FGInt, FGInt?= Square + +Procedure FGIntSquare(Const FGInt : TFGInt; Var Square : TFGInt); +Var + size, size1, i, j, rest : LongWord; + Trest : int64; +Begin + size1 := FGInt.Number[0]; + size := 2 * size1; + SetLength(Square.Number, (size + 1)); + Square.Number[0] := size; + For i := 1 To size Do + Square.Number[i] := 0; + For i := 1 To size1 Do + Begin + Trest := FGInt.Number[i]; + Trest := Trest * FGInt.Number[i]; + Trest := Trest + Square.Number[2 * i - 1]; + Square.Number[2 * i - 1] := Trest And 2147483647; + rest := Trest Shr 31; + For j := i + 1 To size1 Do + Begin + Trest := FGInt.Number[i] Shl 1; + Trest := Trest * FGInt.Number[j]; + Trest := Trest + Square.Number[i + j - 1]; + Trest := Trest + rest; + Square.Number[i + j - 1] := Trest And 2147483647; + rest := Trest Shr 31; + End; + Square.Number[i + size1] := rest; + End; + Square.Sign := positive; + While (Square.Number[size] = 0) And (size > 1) Do + size := size - 1; + If size <> (2 * size1) Then + Begin + SetLength(Square.Number, size + 1); + Square.Number[0] := size; + End; +End; + + +// Exponentiate a FGInt, FGInt^exp = res + +Procedure FGIntExp(Const FGInt, exp : TFGInt; Var res : TFGInt); +Var + temp2, temp3 : TFGInt; + S : AnsiString; + i : LongWord; +Begin + FGIntToBase2String(exp, S); + If S[length(S)] = '0' Then Base10StringToFGInt('1', res) Else FGIntCopy(FGInt, res); + FGIntCopy(FGInt, temp2); + If length(S) > 1 Then + For i := (length(S) - 1) Downto 1 Do + Begin + FGIntSquare(temp2, temp3); + FGIntCopy(temp3, temp2); + If S[i] = '1' Then + Begin + FGIntMul(res, temp2, temp3); + FGIntCopy(temp3, res); + End; + End; +End; + + +// Compute FGInt! = FGInt * (FGInt - 1) * (FGInt - 2) * ... * 3 * 2 * 1 + +Procedure FGIntFac(Const FGInt : TFGInt; Var res : TFGInt); +Var + one, temp, temp1 : TFGInt; +Begin + FGIntCopy(FGInt, temp); + Base10StringToFGInt('1', res); + Base10StringToFGInt('1', one); + + While Not (FGIntCompareAbs(temp, one) = Eq) Do + Begin + FGIntMul(temp, res, temp1); + FGIntCopy(temp1, res); + FGIntSubBis(temp, one); + End; + + FGIntDestroy(one); + FGIntDestroy(temp); +End; + + +// FGInt = FGInt * 2147483648 + +Procedure FGIntShiftLeftBy31(Var FGInt : TFGInt); +Var + f1, f2 : LongWord; + i, size : longint; +Begin + size := FGInt.Number[0]; + SetLength(FGInt.Number, size + 2); + f1 := 0; + For i := 1 To (size + 1) Do + Begin + f2 := FGInt.Number[i]; + FGInt.Number[i] := f1; + f1 := f2; + End; + FGInt.Number[0] := size + 1; +End; + +Procedure FGIntShiftLeftBy31Times(Var FGInt : TFGInt; times : LongWord); +Var + i, size : longint; +Begin + size := FGInt.Number[0]; + SetLength(FGInt.Number, size + 1 + times); + For i := size Downto 1 Do + Begin + FGInt.Number[i + times] := FGInt.Number[i]; + End; + For i := 1 To times Do + Begin + FGInt.Number[i] := 0; + End; + FGInt.Number[0] := size + times; +End; + + +// Divide 2 FGInts, FGInt1 = FGInt2 * QFGInt + MFGInt, MFGInt is always positive + +Procedure FGIntDivMod(Var FGInt1, FGInt2, QFGInt, MFGInt : TFGInt); +Var + one, zero, temp1 : TFGInt; + s1, s2 : TSign; + j, s, t : LongWord; + i, k : int64; +Begin + s1 := FGInt1.Sign; + s2 := FGInt2.Sign; + FGIntAbs(FGInt1); + FGIntAbs(FGInt2); + FGIntCopy(FGInt1, MFGInt); + FGIntCopy(FGInt2, temp1); + + If FGIntCompareAbs(FGInt1, FGInt2) <> St Then + Begin + s := FGInt1.Number[0] - FGInt2.Number[0]; + SetLength(QFGInt.Number, (s + 2)); + QFGInt.Number[0] := s + 1; + For t := 1 To s Do + Begin + FGIntShiftLeftBy31(temp1); + QFGInt.Number[t] := 0; + End; + j := s + 1; + QFGInt.Number[j] := 0; + While FGIntCompareAbs(MFGInt, FGInt2) <> St Do + Begin + While FGIntCompareAbs(MFGInt, temp1) <> St Do + Begin + If MFGInt.Number[0] > temp1.Number[0] Then + Begin + i := MFGInt.Number[MFGInt.Number[0]]; + i := i Shl 31; + i := i + MFGInt.Number[MFGInt.Number[0] - 1]; + i := i Div (temp1.Number[temp1.Number[0]] + 1); + End + Else +// i := MFGInt.Number[MFGInt.Number[0]] Div (temp1.Number[temp1.Number[0]] + 1); + Begin + If (MFGInt.Number[0] > 1) And (FGInt2.Number[0] > 1) Then + Begin + i := MFGInt.Number[MFGInt.Number[0]]; + i := i Shl 31; + i := i + MFGInt.Number[MFGInt.Number[0] - 1]; + k := temp1.Number[temp1.Number[0]]; + k := k shl 31; + k := k + temp1.Number[temp1.Number[0] - 1] + 1; + i := i Div k; + End + Else + i := MFGInt.Number[MFGInt.Number[0]] Div (temp1.Number[temp1.Number[0]] + 1); + End; + If (i <> 0) Then + Begin + FGIntMulByIntSubBis(MFGInt, temp1, i); + QFGInt.Number[j] := QFGInt.Number[j] + i; + End + Else + Begin + QFGInt.Number[j] := QFGInt.Number[j] + 1; + FGIntSubBis(MFGInt, temp1); + End; + End; + If MFGInt.Number[0] <= temp1.Number[0] Then + If FGIntCompareAbs(temp1, FGInt2) <> Eq Then + Begin + FGIntShiftRightBy31(temp1); + j := j - 1; + End; + End; + End + Else + Base10StringToFGInt('0', QFGInt); + s := QFGInt.Number[0]; + While (s > 1) And (QFGInt.Number[s] = 0) Do + s := s - 1; + If s < QFGInt.Number[0] Then + Begin + setlength(QFGInt.Number, s + 1); + QFGInt.Number[0] := s; + End; + QFGInt.Sign := positive; + + FGIntDestroy(temp1); + Base10StringToFGInt('0', zero); + Base10StringToFGInt('1', one); + If s1 = negative Then + Begin + If FGIntCompareAbs(MFGInt, zero) <> Eq Then + Begin + FGIntadd(QFGInt, one, temp1); + FGIntDestroy(QFGInt); + FGIntCopy(temp1, QFGInt); + FGIntDestroy(temp1); + FGIntsub(FGInt2, MFGInt, temp1); + FGIntDestroy(MFGInt); + FGIntCopy(temp1, MFGInt); + FGIntDestroy(temp1); + End; + If s2 = positive Then QFGInt.Sign := negative; + End + Else + QFGInt.Sign := s2; + FGIntDestroy(one); + FGIntDestroy(zero); + + FGInt1.Sign := s1; + FGInt2.Sign := s2; +End; + + +// Same as above but doesn 't compute MFGInt + +Procedure FGIntDiv(Var FGInt1, FGInt2, QFGInt : TFGInt); +Var + one, zero, temp1, MFGInt : TFGInt; + s1, s2 : TSign; + j, s, t : LongWord; + i, k : int64; +Begin + s1 := FGInt1.Sign; + s2 := FGInt2.Sign; + FGIntAbs(FGInt1); + FGIntAbs(FGInt2); + FGIntCopy(FGInt1, MFGInt); + FGIntCopy(FGInt2, temp1); + + If FGIntCompareAbs(FGInt1, FGInt2) <> St Then + Begin + s := FGInt1.Number[0] - FGInt2.Number[0]; + SetLength(QFGInt.Number, (s + 2)); + QFGInt.Number[0] := s + 1; + For t := 1 To s Do + Begin + FGIntShiftLeftBy31(temp1); + QFGInt.Number[t] := 0; + End; + j := s + 1; + QFGInt.Number[j] := 0; + While FGIntCompareAbs(MFGInt, FGInt2) <> St Do + Begin + While FGIntCompareAbs(MFGInt, temp1) <> St Do + Begin + If MFGInt.Number[0] > temp1.Number[0] Then + Begin + i := MFGInt.Number[MFGInt.Number[0]]; + i := i Shl 31; + i := i + MFGInt.Number[MFGInt.Number[0] - 1]; + i := i Div (temp1.Number[temp1.Number[0]] + 1); + End + Else +// i := MFGInt.Number[MFGInt.Number[0]] Div (temp1.Number[temp1.Number[0]] + 1); + Begin + If (MFGInt.Number[0] > 1) And (FGInt2.Number[0] > 1) Then + Begin + i := MFGInt.Number[MFGInt.Number[0]]; + i := i Shl 31; + i := i + MFGInt.Number[MFGInt.Number[0] - 1]; + k := temp1.Number[temp1.Number[0]]; + k := k shl 31; + k := k + temp1.Number[temp1.Number[0] - 1] + 1; + i := i Div k; + End + Else + i := MFGInt.Number[MFGInt.Number[0]] Div (temp1.Number[temp1.Number[0]] + 1); + End; + If (i <> 0) Then + Begin + FGIntMulByIntSubBis(MFGInt, temp1, i); + QFGInt.Number[j] := QFGInt.Number[j] + i; + End + Else + Begin + QFGInt.Number[j] := QFGInt.Number[j] + 1; + FGIntSubBis(MFGInt, temp1); + End; + End; + If MFGInt.Number[0] <= temp1.Number[0] Then + If FGIntCompareAbs(temp1, FGInt2) <> Eq Then + Begin + FGIntShiftRightBy31(temp1); + j := j - 1; + End; + End; + End + Else + Base10StringToFGInt('0', QFGInt); + s := QFGInt.Number[0]; + While (s > 1) And (QFGInt.Number[s] = 0) Do + s := s - 1; + If s < QFGInt.Number[0] Then + Begin + setlength(QFGInt.Number, s + 1); + QFGInt.Number[0] := s; + End; + QFGInt.Sign := positive; + + FGIntDestroy(temp1); + Base10StringToFGInt('0', zero); + Base10StringToFGInt('1', one); + If s1 = negative Then + Begin + If FGIntCompareAbs(MFGInt, zero) <> Eq Then + Begin + FGIntadd(QFGInt, one, temp1); + FGIntDestroy(QFGInt); + FGIntCopy(temp1, QFGInt); + FGIntDestroy(temp1); + FGIntsub(FGInt2, MFGInt, temp1); + FGIntDestroy(MFGInt); + FGIntCopy(temp1, MFGInt); + FGIntDestroy(temp1); + End; + If s2 = positive Then QFGInt.Sign := negative; + End + Else + QFGInt.Sign := s2; + FGIntDestroy(one); + FGIntDestroy(zero); + FGIntDestroy(MFGInt); + + FGInt1.Sign := s1; + FGInt2.Sign := s2; +End; + + + +// FGInt1 = FGInt1 - divInt * FGInt2, use only when 0 < FGInt2 < FGInt1 + +Procedure FGIntMulByIntSubBis(Var FGInt1 : TFGInt; Const FGInt2 : TFGInt; divInt : LongWord); +Var + i, size1, size2, rest, Trest, mRest : LongWord; + mTmpRest : int64; +Begin + size1 := FGInt1.Number[0]; + size2 := FGInt2.Number[0]; + rest := 0; + mRest := 0; + For i := 1 To size2 Do + Begin + mTmpRest := FGInt2.Number[i]; + mTmpRest := mTmpRest * divInt; + mTmpRest := mTmpRest + mRest; + Trest := (2147483648 Or FGInt1.Number[i]) - (mTmpRest And 2147483647) - rest; + If (Trest > 2147483647) Then + rest := 0 + Else + rest := 1; + mRest := mTmpRest shr 31; + FGInt1.Number[i] := Trest And 2147483647; + End; + For i := size2 + 1 To size1 Do + Begin + Trest := (2147483648 Or FGInt1.Number[i]) - mRest - rest; + If (Trest > 2147483647) Then + rest := 0 + Else + rest := 1; + mRest := mRest shr 31; + FGInt1.Number[i] := Trest And 2147483647; + End; + i := size1; + While (FGInt1.Number[i] = 0) And (i > 1) Do + i := i - 1; + If i <> size1 Then + Begin + SetLength(FGInt1.Number, i + 1); + FGInt1.Number[0] := i; + End; +End; + + + +Procedure FGIntMod(Var FGInt1, FGInt2, MFGInt : TFGInt); +Var + zero, temp1 : TFGInt; + s1, s2 : TSign; + s: LongWord; + i, j : int64; +Begin + s1 := FGInt1.Sign; + s2 := FGInt2.Sign; + FGIntAbs(FGInt1); + FGIntAbs(FGInt2); + FGIntCopy(FGInt1, MFGInt); + FGIntCopy(FGInt2, temp1); + + If FGIntCompareAbs(FGInt1, FGInt2) <> St Then + Begin + s := FGInt1.Number[0] - FGInt2.Number[0]; +// For t := 1 To s Do + FGIntShiftLeftBy31Times(temp1,s); + While FGIntCompareAbs(MFGInt, FGInt2) <> St Do + Begin + While FGIntCompareAbs(MFGInt, temp1) <> St Do + Begin + If MFGInt.Number[0] > temp1.Number[0] Then + Begin + i := MFGInt.Number[MFGInt.Number[0]]; + i := i Shl 31; + i := i + MFGInt.Number[MFGInt.Number[0] - 1]; + i := i Div (temp1.Number[temp1.Number[0]] + 1); + End + Else +// i := MFGInt.Number[MFGInt.Number[0]] Div (temp1.Number[temp1.Number[0]] + 1); + Begin + If (MFGInt.Number[0] > 1) And (FGInt2.Number[0] > 1) Then + Begin + i := MFGInt.Number[MFGInt.Number[0]]; + i := i Shl 31; + i := i + MFGInt.Number[MFGInt.Number[0] - 1]; + j := temp1.Number[temp1.Number[0]]; + j := j shl 31; + j := j + temp1.Number[temp1.Number[0] - 1] + 1; + i := i Div j; + End + Else + i := MFGInt.Number[MFGInt.Number[0]] Div (temp1.Number[temp1.Number[0]] + 1); + End; + If (i <> 0) Then + Begin + FGIntMulByIntSubBis(MFGInt, temp1, i); + End + Else + FGIntSubBis(MFGInt, temp1); + End; + If MFGInt.Number[0] <= temp1.Number[0] Then + If FGIntCompareAbs(temp1, FGInt2) <> Eq Then FGIntShiftRightBy31(temp1); + End; + End; + + FGIntDestroy(temp1); + Base10StringToFGInt('0', zero); + If s1 = negative Then + Begin + If FGIntCompareAbs(MFGInt, zero) <> Eq Then + Begin + FGIntSub(FGInt2, MFGInt, temp1); + FGIntDestroy(MFGInt); + FGIntCopy(temp1, MFGInt); + FGIntDestroy(temp1); + End; + End; + FGIntDestroy(zero); + + FGInt1.Sign := s1; + FGInt2.Sign := s2; +End; + + +// Square a FGInt modulo Modb, FGInt^2 mod Modb = FGIntSM + +Procedure FGIntSquareMod(Var FGInt, Modb, FGIntSM : TFGInt); +Var + temp : TFGInt; +Begin + FGIntSquare(FGInt, temp); + FGIntMod(temp, Modb, FGIntSM); + FGIntDestroy(temp); +End; + + +// Add 2 FGInts modulo base, (FGInt1 + FGInt2) mod base = FGIntres + +Procedure FGIntAddMod(Var FGInt1, FGInt2, base, FGIntres : TFGInt); +Var + temp : TFGInt; +Begin + FGIntadd(FGInt1, FGInt2, temp); + FGIntMod(temp, base, FGIntres); + FGIntDestroy(temp); +End; + + +// Multiply 2 FGInts modulo base, (FGInt1 * FGInt2) mod base = FGIntres + +Procedure FGIntMulMod(Var FGInt1, FGInt2, base, FGIntres : TFGInt); +Var + temp : TFGInt; +Begin + FGIntMul(FGInt1, FGInt2, temp); + FGIntMod(temp, base, FGIntres); + FGIntDestroy(temp); +End; + + +// Exponentiate 2 FGInts modulo base, (FGInt1 ^ FGInt2) mod modb = res + +Procedure FGIntModExp(Var FGInt, exp, modb, res : TFGInt); +Var + temp2, temp3 : TFGInt; + i : LongWord; + S : AnsiString; +Begin + If (Modb.Number[1] Mod 2) = 1 Then + Begin + FGIntMontgomeryModExp(FGInt, exp, modb, res); + exit; + End; + FGIntToBase2String(exp, S); + Base10StringToFGInt('1', res); + FGIntcopy(FGInt, temp2); + + For i := length(S) Downto 1 Do + Begin + If S[i] = '1' Then + Begin + FGIntmulMod(res, temp2, modb, temp3); + FGIntCopy(temp3, res); + End; + FGIntSquareMod(temp2, Modb, temp3); + FGIntCopy(temp3, temp2); + End; + FGIntDestroy(temp2); +End; + + +// Procedures for Montgomery Exponentiation + +Procedure FGIntModBis(Const FGInt : TFGInt; Var FGIntOut : TFGInt; b, head : LongWord); +Var + i : LongWord; +Begin + If b <= FGInt.Number[0] Then + Begin + SetLength(FGIntOut.Number, (b + 1)); + For i := 0 To b Do + FGIntOut.Number[i] := FGInt.Number[i]; + FGIntOut.Number[b] := FGIntOut.Number[b] And head; + i := b; + While (FGIntOut.Number[i] = 0) And (i > 1) Do + i := i - 1; + If i < b Then SetLength(FGIntOut.Number, i + 1); + FGIntOut.Number[0] := i; + FGIntOut.Sign := positive; + End + Else + FGIntCopy(FGInt, FGIntOut); +End; + + +Procedure FGIntMulModBis(Const FGInt1, FGInt2 : TFGInt; Var Prod : TFGInt; b, head : LongWord); +Var + i, j, size, size1, size2, t, rest : LongWord; + Trest : int64; +Begin + size1 := FGInt1.Number[0]; + size2 := FGInt2.Number[0]; + size := min(b, size1 + size2); + SetLength(Prod.Number, (size + 1)); + For i := 1 To size Do + Prod.Number[i] := 0; + + For i := 1 To size2 Do + Begin + rest := 0; + t := min(size1, b - i + 1); + For j := 1 To t Do + Begin + Trest := FGInt1.Number[j]; + Trest := Trest * FGInt2.Number[i]; + Trest := Trest + Prod.Number[j + i - 1]; + Trest := Trest + rest; + Prod.Number[j + i - 1] := Trest And 2147483647; + rest := Trest Shr 31; + End; + If (i + size1) <= b Then Prod.Number[i + size1] := rest; + End; + + Prod.Number[0] := size; + If size = b Then Prod.Number[b] := Prod.Number[b] And head; + While (Prod.Number[size] = 0) And (size > 1) Do + size := size - 1; + If size < Prod.Number[0] Then + Begin + SetLength(Prod.Number, size + 1); + Prod.Number[0] := size; + End; + If FGInt1.Sign = FGInt2.Sign Then + Prod.Sign := Positive + Else + prod.Sign := negative; +End; + + +Procedure FGIntMontgomeryMod(Const GInt, base, baseInv : TFGInt; Var MGInt : TFGInt; b : Longword; head : LongWord); +Var + m, temp, temp1 : TFGInt; + r : LongWord; +Begin + FGIntModBis(GInt, temp, b, head); + FGIntMulModBis(temp, baseInv, m, b, head); + FGIntMul(m, base, temp1); + FGIntDestroy(temp); + FGIntAdd(temp1, GInt, temp); + FGIntDestroy(temp1); + MGInt.Number := copy(temp.Number, b - 1, temp.Number[0] - b + 2); + MGInt.Sign := positive; + MGInt.Number[0] := temp.Number[0] - b + 1; + FGIntDestroy(temp); + If (head Shr 30) = 0 Then FGIntDivByIntBis(MGInt, head + 1, r) + Else FGIntShiftRightBy31(MGInt); + If FGIntCompareAbs(MGInt, base) <> St Then FGIntSubBis(MGInt, base); + FGIntDestroy(temp); + FGIntDestroy(m); +End; + + +Procedure FGIntMontgomeryModExp(Var FGInt, exp, modb, res : TFGInt); +Var + temp2, temp3, baseInv, r, zero : TFGInt; + i, j, t, b, head : LongWord; + S: AnsiString; +Begin + Base2StringToFGInt('0', zero); + FGIntMod(FGInt, modb, res); + If FGIntCompareAbs(res, zero)=Eq then + Begin + FGIntDestroy(zero); + Exit; + End else FGIntDestroy(res); + FGIntDestroy(zero); + + FGIntToBase2String(exp, S); + t := modb.Number[0]; + b := t; + + If (modb.Number[t] Shr 30) = 1 Then t := t + 1; + SetLength(r.Number, (t + 1)); + r.Number[0] := t; + r.Sign := positive; + For i := 1 To t Do + r.Number[i] := 0; + If t = modb.Number[0] Then + Begin + head := 2147483647; + For j := 29 Downto 0 Do + Begin + head := head Shr 1; + If (modb.Number[t] Shr j) = 1 Then + Begin + r.Number[t] := 1 Shl (j + 1); + break; + End; + End; + End + Else + Begin + r.Number[t] := 1; + head := 2147483647; + End; + + FGIntModInv(modb, r, temp2); + If temp2.Sign = negative Then + FGIntCopy(temp2, BaseInv) + Else + Begin + FGIntCopy(r, BaseInv); + FGIntSubBis(BaseInv, temp2); + End; +// FGIntBezoutBachet(r, modb, temp2, BaseInv); + FGIntAbs(BaseInv); + FGIntDestroy(temp2); + FGIntMod(r, modb, res); + FGIntMulMod(FGInt, res, modb, temp2); + FGIntDestroy(r); + + For i := length(S) Downto 1 Do + Begin + If S[i] = '1' Then + Begin + FGIntmul(res, temp2, temp3); + FGIntDestroy(res); + FGIntMontgomeryMod(temp3, modb, baseinv, res, b, head); + FGIntDestroy(temp3); + End; + FGIntSquare(temp2, temp3); + FGIntDestroy(temp2); + FGIntMontgomeryMod(temp3, modb, baseinv, temp2, b, head); + FGIntDestroy(temp3); + End; + FGIntDestroy(temp2); + FGIntMontgomeryMod(res, modb, baseinv, temp3, b, head); + FGIntCopy(temp3, res); + FGIntDestroy(temp3); + FGIntDestroy(baseinv); +End; + + +// Compute the Greatest Common Divisor of 2 FGInts + +Procedure FGIntGCD(Const FGInt1, FGInt2 : TFGInt; Var GCD : TFGInt); +Var + k : TCompare; + zero, temp1, temp2, temp3 : TFGInt; +Begin + k := FGIntCompareAbs(FGInt1, FGInt2); + If (k = Eq) Then FGIntCopy(FGInt1, GCD) Else + If (k = St) Then FGIntGCD(FGInt2, FGInt1, GCD) Else + Begin + Base10StringToFGInt('0', zero); + FGIntCopy(FGInt1, temp1); + FGIntCopy(FGInt2, temp2); + While (temp2.Number[0] <> 1) Or (temp2.Number[1] <> 0) Do + Begin + FGIntMod(temp1, temp2, temp3); + FGIntCopy(temp2, temp1); + FGIntCopy(temp3, temp2); + FGIntDestroy(temp3); + End; + FGIntCopy(temp1, GCD); + FGIntDestroy(temp2); + FGIntDestroy(zero); + End; +End; + + +// Compute the Least Common Multiple of 2 FGInts + +Procedure FGIntLCM(Const FGInt1, FGInt2 : TFGInt; Var LCM : TFGInt); +Var + temp1, temp2 : TFGInt; +Begin + FGIntGCD(FGInt1, FGInt2, temp1); + FGIntmul(FGInt1, FGInt2, temp2); + FGIntdiv(temp2, temp1, LCM); + FGIntDestroy(temp1); + FGIntDestroy(temp2); +End; + + +// Trialdivision of a FGInt upto 9999 and stopping when a divisor is found, returning ok=false + +Procedure FGIntTrialDiv9999(Const FGInt : TFGInt; Var ok : boolean); +Var + j : LongWord; + i : integer; +Begin + If ((FGInt.Number[1] Mod 2) = 0) Then ok := false + Else + Begin + i := 0; + ok := true; + While ok And (i < 1228) Do + Begin + i := i + 1; + FGIntmodbyint(FGInt, primes[i], j); + If j = 0 Then ok := false; + End; + End; +End; + + +// A prng + +Procedure FGIntRandom1(Var Seed, RandomFGInt : TFGInt); +Var + temp, base : TFGInt; +Begin + Base10StringToFGInt('281474976710656', base); + Base10StringToFGInt('44485709377909', temp); + FGIntMulMod(seed, temp, base, RandomFGInt); + FGIntDestroy(temp); + FGIntDestroy(base); +End; + + +// Perform a Rabin Miller Primality Test nrtest times on FGIntp, returns ok=true when FGIntp passes the test + +Procedure FGIntRabinMiller(Var FGIntp : TFGInt; nrtest : Longword; Var ok : boolean); +Var + j, b, i : LongWord; + m, z, temp1, temp2, temp3, zero, one, two, pmin1 : TFGInt; + ok1, ok2 : boolean; +Begin + randomize; + Base10StringToFGInt('0', zero); + Base10StringToFGInt('1', one); + Base10StringToFGInt('2', two); + FGIntsub(FGIntp, one, temp1); + FGIntsub(FGIntp, one, pmin1); + + b := 0; + While (temp1.Number[1] Mod 2) = 0 Do + Begin + b := b + 1; + FGIntShiftRight(temp1); + End; + m := temp1; + + i := 0; + ok := true; + Randomize; + While (i < nrtest) And ok Do + Begin + j := 0; + i := i + 1; + Base10StringToFGInt(AnsiString(inttostr(Primes[Random(1227) + 1])), temp2); + FGIntMontGomeryModExp(temp2, m, FGIntp, z); + FGIntDestroy(temp2); + ok1 := (FGIntCompareAbs(z, one) = Eq); + ok2 := (FGIntCompareAbs(z, pmin1) = Eq); + If Not (ok1 Or ok2) Then + Begin + + While (ok And (j < b)) Do + Begin + If (j > 0) And ok1 Then ok := false + Else + Begin + j := j + 1; + If (j < b) And (Not ok2) Then + Begin + FGIntSquaremod(z, FGIntp, temp3); + FGIntCopy(temp3, z); + ok1 := (FGIntCompareAbs(z, one) = Eq); + ok2 := (FGIntCompareAbs(z, pmin1) = Eq); + If ok2 Then j := b; + End + Else If (Not ok2) And (j >= b) Then ok := false; + End; + End; + + End + End; + + FGIntDestroy(zero); + FGIntDestroy(one); + FGIntDestroy(two); + FGIntDestroy(m); + FGIntDestroy(z); + FGIntDestroy(pmin1); +End; + + +// Compute the coefficients from the Bezout Bachet theorem, FGInt1 * a + FGInt2 * b = GCD(FGInt1, FGInt2) + +Procedure FGIntBezoutBachet(Var FGInt1, FGInt2, a, b : TFGInt); +Var + zero, r1, r2, r3, ta, gcd, temp, temp1, temp2 : TFGInt; +Begin + If FGIntCompareAbs(FGInt1, FGInt2) <> St Then + Begin + FGIntcopy(FGInt1, r1); + FGIntcopy(FGInt2, r2); + Base10StringToFGInt('0', zero); + Base10StringToFGInt('1', a); + Base10StringToFGInt('0', ta); + + Repeat + FGIntdivmod(r1, r2, temp, r3); + FGIntDestroy(r1); + r1 := r2; + r2 := r3; + + FGIntmul(ta, temp, temp1); + FGIntsub(a, temp1, temp2); + FGIntCopy(ta, a); + FGIntCopy(temp2, ta); + FGIntDestroy(temp1); + + FGIntDestroy(temp); + Until FGIntCompareAbs(r3, zero) = Eq; + + FGIntGCD(FGInt1, FGInt2, gcd); + FGIntmul(a, FGInt1, temp1); + FGIntsub(gcd, temp1, temp2); + FGIntDestroy(temp1); + FGIntdiv(temp2, FGInt2, b); + FGIntDestroy(temp2); + + FGIntDestroy(ta); + FGIntDestroy(r1); + FGIntDestroy(r2); + FGIntDestroy(gcd); + End + Else FGIntBezoutBachet(FGInt2, FGInt1, b, a); +End; + + +// Find the (multiplicative) Modular inverse of a FGInt in a finite ring +// of additive order base + +Procedure FGIntModInv(Const FGInt1, base : TFGInt; Var Inverse : TFGInt); +Var + zero, one, r1, r2, r3, tb, gcd, temp, temp1, temp2 : TFGInt; +Begin + Base10StringToFGInt('1', one); + FGIntGCD(FGInt1, base, gcd); + If FGIntCompareAbs(one, gcd) = Eq Then + Begin + FGIntcopy(base, r1); + FGIntcopy(FGInt1, r2); + Base10StringToFGInt('0', zero); + Base10StringToFGInt('0', inverse); + Base10StringToFGInt('1', tb); + + Repeat + FGIntDestroy(r3); + FGIntdivmod(r1, r2, temp, r3); + FGIntCopy(r2, r1); + FGIntCopy(r3, r2); + + FGIntmul(tb, temp, temp1); + FGIntsub(inverse, temp1, temp2); + FGIntDestroy(inverse); + FGIntDestroy(temp1); + FGIntCopy(tb, inverse); + FGIntCopy(temp2, tb); + + FGIntDestroy(temp); + Until FGIntCompareAbs(r3, zero) = Eq; + + If inverse.Sign = negative Then + Begin + FGIntadd(base, inverse, temp); + FGIntCopy(temp, inverse); + End; + + FGIntDestroy(tb); + FGIntDestroy(r1); + FGIntDestroy(r2); + End; + FGIntDestroy(gcd); + FGIntDestroy(one); +End; + + +// Perform a (combined) primality test on FGIntp consisting of a trialdivision upto 8192, +// if the FGInt passes perform nrRMtests Rabin Miller primality tests, returns ok when a +// FGInt is probably prime + +Procedure FGIntPrimetest(Var FGIntp : TFGInt; nrRMtests : integer; Var ok : boolean); +Begin + FGIntTrialdiv9999(FGIntp, ok); + If ok Then FGIntRabinMiller(FGIntp, nrRMtests, ok); +End; + + +// Computes the Legendre symbol for a any number and +// p a prime, returns 0 if p divides a, 1 if a is a +// quadratic residu mod p, -1 if a is a quadratic +// nonresidu mod p + +Procedure FGIntLegendreSymbol(Var a, p : TFGInt; Var L : integer); +Var + temp1, temp2, temp3, temp4, temp5, zero, one : TFGInt; + i : LongWord; + ok1, ok2 : boolean; +Begin + Base10StringToFGInt('0', zero); + Base10StringToFGInt('1', one); + FGIntMod(a, p, temp1); + If FGIntCompareAbs(zero, temp1) = Eq Then + Begin + FGIntDestroy(temp1); + L := 0; + End + Else + Begin + FGIntDestroy(temp1); + FGIntCopy(p, temp1); + FGIntCopy(a, temp2); + L := 1; + While FGIntCompareAbs(temp2, one) <> Eq Do + Begin + If (temp2.Number[1] Mod 2) = 0 Then + Begin + FGIntSquare(temp1, temp3); + FGIntSub(temp3, one, temp4); + FGIntDestroy(temp3); + FGIntDivByInt(temp4, temp3, 8, i); + If (temp3.Number[1] Mod 2) = 0 Then ok1 := false Else ok1 := true; + FGIntDestroy(temp3); + FGIntDestroy(temp4); + If ok1 = true Then L := L * (-1); + FGIntDivByIntBis(temp2, 2, i); + End + Else + Begin + FGIntSub(temp1, one, temp3); + FGIntSub(temp2, one, temp4); + FGIntMul(temp3, temp4, temp5); + FGIntDestroy(temp3); + FGIntDestroy(temp4); + FGIntDivByInt(temp5, temp3, 4, i); + If (temp3.Number[1] Mod 2) = 0 Then ok2 := false Else ok2 := true; + FGIntDestroy(temp5); + FGIntDestroy(temp3); + If ok2 = true Then L := L * (-1); + FGIntMod(temp1, temp2, temp3); + FGIntCopy(temp2, temp1); + FGIntCopy(temp3, temp2); + End; + End; + FGIntDestroy(temp1); + FGIntDestroy(temp2); + End; + FGIntDestroy(zero); + FGIntDestroy(one); +End; + + +// Compute a square root modulo a prime number +// SquareRoot^2 mod Prime = Square + +Procedure FGIntSquareRootModP(Square, Prime : TFGInt; Var SquareRoot : TFGInt); +Var + one, n, b, s, r, temp, temp1, temp2, temp3 : TFGInt; + a, i, j : longint; + L : Integer; +Begin + Base2StringToFGInt('1', one); + Base2StringToFGInt('10', n); + a := 0; + FGIntLegendreSymbol(n, Prime, L); + While L <> -1 Do + Begin + FGIntAddBis(n, one); + FGIntLegendreSymbol(n, Prime, L); + End; + FGIntCopy(Prime, s); + s.Number[1] := s.Number[1] - 1; + While (s.Number[1] Mod 2) = 0 Do + Begin + FGIntShiftRight(s); + a := a + 1; + End; + FGIntMontgomeryModExp(n, s, Prime, b); + FGIntAdd(s, one, temp); + FGIntShiftRight(temp); + FGIntMontgomeryModExp(Square, temp, Prime, r); + FGIntDestroy(temp); + FGIntModInv(Square, Prime, temp1); + + For i := 0 To (a - 2) Do + Begin + FGIntSquareMod(r, Prime, temp2); + FGIntMulMod(temp1, temp2, Prime, temp); + FGIntDestroy(temp2); + For j := 1 To (a - i - 2) Do + Begin + FGIntSquareMod(temp, Prime, temp2); + FGIntDestroy(temp); + FGIntCopy(temp2, temp); + FGIntDestroy(temp2); + End; + If FGIntCompareAbs(temp, one) <> Eq Then + Begin + FGIntMulMod(r, b, Prime, temp3); + FGIntDestroy(r); + FGIntCopy(temp3, r); + FGIntDestroy(temp3); + End; + FGIntDestroy(temp); + FGIntDestroy(temp2); + If i = (a - 2) Then break; + FGIntSquareMod(b, Prime, temp3); + FGIntDestroy(b); + FGIntCopy(temp3, b); + FGIntDestroy(temp3); + End; + + FGIntCopy(r, SquareRoot); + FGIntDestroy(r); + FGIntDestroy(s); + FGIntDestroy(b); + FGIntDestroy(temp1); + FGIntDestroy(one); + FGIntDestroy(n); +End; + + +End. diff --git a/10.1.UP2/Keygen/RadKeygen.pas b/10.1.UP2/Keygen/RadKeygen.pas new file mode 100644 index 0000000..a057186 --- /dev/null +++ b/10.1.UP2/Keygen/RadKeygen.pas @@ -0,0 +1,392 @@ +unit RadKeygen; + +interface +uses SysUtils,Classes,Windows,Registry,SHFolder,Sha1,FGInt,RadVersion,RadLicense,SHFolderDll; + + + function GenerateSerialNumber():string; + function GetRegistrationCode():string; + function GenerateLicenseFile(SerialNumber,RegistrationCode:string;RadStudioVersion:PRadStudioVersion;var FileName:string):Boolean; + function PatchFile(RadStudioVersion:PRadStudioVersion;var FileName:string):Boolean; + + + +implementation + +function GetAppDataPath():string; +var + Path:array [0..MAX_PATH-1] of Char; +begin + if Succeeded(SHGetFolderPath(0, CSIDL_COMMON_APPDATA, 0, 0, @Path[0])) then + Result:=string(Path) + else + Result:=''; +end; + + + +function GenerateSerialNumber():string; +const + StrMap:string='ABC2DE34FGHJKLM5NPQRST6U7VWX8YZ9'; + ByteMap:array[0..255] of Byte=($00, $07, $0E, $09, $1C, $1B, $12, $15, $38, $3F, + $36, $31, $24, $23, $2A, $2D, $70, $77, $7E, $79, + $6C, $6B, $62, $65, $48, $4F, $46, $41, $54, $53, + $5A, $5D, $E0, $E7, $EE, $E9, $FC, $FB, $F2, $F5, + $D8, $DF, $D6, $D1, $C4, $C3, $CA, $CD, $90, $97, + $9E, $99, $8C, $8B, $82, $85, $A8, $AF, $A6, $A1, + $B4, $B3, $BA, $BD, $C7, $C0, $C9, $CE, $DB, $DC, + $D5, $D2, $FF, $F8, $F1, $F6, $E3, $E4, $ED, $EA, + $B7, $B0, $B9, $BE, $AB, $AC, $A5, $A2, $8F, $88, + $81, $86, $93, $94, $9D, $9A, $27, $20, $29, $2E, + $3B, $3C, $35, $32, $1F, $18, $11, $16, $03, $04, + $0D, $0A, $57, $50, $59, $5E, $4B, $4C, $45, $42, + $6F, $68, $61, $66, $73, $74, $7D, $7A, $89, $8E, + $87, $80, $95, $92, $9B, $9C, $B1, $B6, $BF, $B8, + $AD, $AA, $A3, $A4, $F9, $FE, $F7, $F0, $E5, $E2, + $EB, $EC, $C1, $C6, $CF, $C8, $DD, $DA, $D3, $D4, + $69, $6E, $67, $60, $75, $72, $7B, $7C, $51, $56, + $5F, $58, $4D, $4A, $43, $44, $19, $1E, $17, $10, + $05, $02, $0B, $0C, $21, $26, $2F, $28, $3D, $3A, + $33, $34, $4E, $49, $40, $47, $52, $55, $5C, $5B, + $76, $71, $78, $7F, $6A, $6D, $64, $63, $3E, $39, + $30, $37, $22, $25, $2C, $2B, $06, $01, $08, $0F, + $1A, $1D, $14, $13, $AE, $A9, $A0, $A7, $B2, $B5, + $BC, $BB, $96, $91, $98, $9F, $8A, $8D, $84, $83, + $DE, $D9, $D0, $D7, $C2, $C5, $CC, $CB, $E6, $E1, + $E8, $EF, $FA, $FD, $F4, $F3); +var + i,v1,v2,v3,v4,v5,v6,v7,v8,v9:Integer; + SumValue:string; + ByteArray:array[0..19] of Byte; +begin + Randomize(); + v1:=0; + v2:=0; + v3:=0; + v4:=0; + v5:=1; + v6:=8217; + v7:=53; + v8:= Random(32) shl 8; + v8:=v8 xor Random(32); + v8:= v8 mod $10000; + SumValue:=Format('%d',[v1 + v2 + v3 + v4 + v5 + v6 + v7 + v8]); + v9:=0; + + for i := 0 to Length(SumValue)-1 do + begin + v9:=v9 xor ByteMap[Ord(SumValue[i+1])]; + end; + ByteArray[0] := ((v8 shr 1) and 8) or ((v8 shr 5) and 4) or (2 * v5 and 2); + ByteArray[1] := ((v7 shr 1) and 16) or ((v7 shr 4) and 8) or ((v6 shr 5) and 2) or ((v6 shr 8) and 1); + ByteArray[2] := (2 * v7 and 16) or (8 * v8 and 8) or ((v5 shr 1) and 4) or ((v6 shr 4) and 2) or (v3 and 1); + ByteArray[3] := (4 * v5 and 16); + ByteArray[4] := (4 * v9 and 16) or ((v6 shr 4) and 8); + ByteArray[5] := (8 * v4 and 8) or ((v8 shr 1) and 4) or ((v8 shr 12) and 2); + ByteArray[6] := ((v9 shr 3) and 8) or ((v8 shr 4) and 4) or (2 * v1 and 2); + ByteArray[7] := ((v8 shr 11) and 16) or ((v8 shr 7) and 8) or (4 * v6 and 4) or ((v5 shr 3) and 2); + ByteArray[8] := ((v8 shr 7) and 16) or ((v6 shr 1) and 1); + ByteArray[9] := (4 * v6 and 16) or (v9 and 8) or (v8 and 4); + ByteArray[10] := ((v8 shr 9) and 8); + ByteArray[11] := (4 * v9 and 8) or (4 * v9 and 4) or (v8 and 2) or ((v8 shr 5) and 1); + ByteArray[12] := ((v8 shr 8) and 1); + ByteArray[13] := ((v6 shr 7) and 16) or ((v9 shr 7) and 1); + ByteArray[14] := (2 * v7 and 2) or ((v7 shr 1) and 1); + ByteArray[15] := (v6 and 8) or ((v6 shr 2) and 4) or ((v8 shr 9) and 1); + ByteArray[16] := (16 * v2 and 16) or (2 * v7 and 8) or ((v5 shr 1) and 1); + ByteArray[17] := ((v9 shr 3) and 2); + ByteArray[18] := (v7 and 16) or ((v6 shr 6) and 8) or ((v6 shr 8) and 4) or ((v8 shr 13) and 2) or ((v9 shr 5) and 1); + ByteArray[19] := ((v6 shr 9) and 16) or ((v7 shr 3) and 8) or ((v6 shr 11) and 2); + + Result:=''; + for i := 0 to Length(ByteArray)-1 do + begin + if (i=4) or (i=10) or (i=16) then Result:=Result+'-'; + Result:=Result+StrMap[ByteArray[i]+1]; + end; + +end; + +function GetRegistrationCode():string; + function GetKey():DWORD; + const + KeyMap:string='ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890X'; + var + ComputerName:array[0..MAX_PATH-1] of Char; + Key:string; + nSize:Cardinal; + i,j:Integer; + begin + Result:=$ED864640; + if (GetComputerName(@ComputerName[0],nSize)=False) then + Key:='localhost' + else + Key:=string(ComputerName); + + Key:=UpperCase(Key); + for i := 0 to Length(Key)-1 do + begin + for j := 0 to Length(KeyMap)-1 do + begin + if (Key[i+1]=KeyMap[j+1]) then Break; + end; + if j>=Length(KeyMap) then + Result:=Result+16*88 + else + Result:=Result+16*Ord(KeyMap[36-j]); + end; + end; + +var + FileName:string; + MemoryStream:TMemoryStream; + dwVerify,dwSize:DWORD; + pBuf,p:PByte; + i,j,eax,ebx,esi:Cardinal; + +begin + Result:=''; + MemoryStream:=TMemoryStream.Create; + try + if GetAppDataPath<>'' then + begin + FileName:=GetAppDataPath+'\Embarcadero\.licenses\.cg_license'; + if FileExists(FileName) then + begin + MemoryStream.LoadFromFile(FileName); + end + else + begin + FileName:=GetAppDataPath+'\Embarcadero\.cg_license'; + if FileExists(FileName) then + begin + MemoryStream.LoadFromFile(FileName); + end; + end; + end; + if MemoryStream.Size>8 then + begin + MemoryStream.Position:=0; + MemoryStream.Read(dwVerify,SizeOf(dwVerify)); + MemoryStream.Read(dwSize,SizeOf(dwSize)); + dwVerify:=(Swap(loWord(dwVerify)) shl 16) or Swap(HiWord(dwVerify)); + dwSize:=(Swap(loWord(dwSize)) shl 16) or Swap(HiWord(dwSize)); + pBuf:=AllocMem(dwSize); + MemoryStream.Read(pBuf^,dwSize); + p:=pBuf; + eax:=GetKey(); + for i := 0 to dwSize-1 do + begin + esi:=p^; + if (esi and $80)=$80 then esi:=esi or $ffffff00; + ebx:=(eax shr 24) and $FF; + p^:=p^ xor ebx; + inc(p); + eax:=eax xor esi; + ebx:=eax shl 8; + eax:=eax xor ebx; + ebx:=eax shl 16; + eax:= eax xor ebx; + ebx:=eax shl 24; + eax:=eax xor ebx; + end; + eax:=eax and $7FFFFFFF; + if eax=dwVerify then + begin + for i := 0 to dwSize-1 do + begin + if PByte(Cardinal(pBuf)+i)^=36 then Break; //$ + end; + Inc(i); + j:=0; + while (i13) and (j<10) do + begin + Result:=Result+Chr(PByte(Cardinal(pBuf)+i)^); + Inc(i); + inc(j); + end; + end; + FreeMem(pBuf,dwSize); + end; + finally + MemoryStream.Free; + end; + +end; + + +procedure PatchmOasisRuntime(RadStudioVersion:PRadStudioVersion); +var + Stream:TMemoryStream; + FileName:string; + P:PByte; +begin + FileName:=Format('%s\%s\OFFLINE\mOasisDesigntime.dll\mOasisRuntime.dll',[GetAppDataPath,RadStudioVersion^.SetupGUID]); + if FileExists(FileName) then + begin + if SHA1Print(SHA1File(FileName))=RadStudioVersion^.mOasisRuntimePatchInfo.Sha1 then + begin + Stream:=TMemoryStream.Create; + try + Stream.LoadFromFile(FileName); + P:= PByte(DWORD(Stream.Memory)+RadStudioVersion^.mOasisRuntimePatchInfo.PatchOffset); + P^:=$EB; + Stream.SaveToFile(FileName); + finally + Stream.Free; + end; + end; + end; +end; + +function GenerateLicenseFile(SerialNumber,RegistrationCode:string;RadStudioVersion:PRadStudioVersion;var FileName:string):Boolean; +const + ModStr:string='8EBD9E688D7106E57BCF63D41BADCE133FEB4CDB718F48F7BF39F6A26EB60BAE'+ + '0E930DC984FDED2537750C9DCFBB87D7AC7F3AA4D65D9E35C2D277BCB0ECDCA0'+ + '2D7DAE739AC8BCAE86914F6E77C17A82C77438421FC315DC38F09C7E840AF41E'+ + '663C5562222E661ED22578A234B58481F862CEABF477C89AE70F15134F83BC7E'+ + 'C2EF57E7274EB74353DE22283113485D9803D4050EF46DB1467EE9D066B104EB'+ + '385D3C36BD29B58E237E22C0BE66D450BDFCED524481B6DCE3F83BBEC547F926'+ + 'AD23057504DEDB9723EBFD26218167AAC79485FF608F8881D9A6AF5C57BE9A2F'+ + 'B52047ABA92F806955580517F6D147BA1FD5DB3EEF1CEE4CA250D1C0FA824CD9'; + ExpStr:string='7E8325B1791B628766F2EB82057E4895DB234C1D7B4B09DB3B8BBE433D68F075'+ + '36C9B38096F51088D9DC4E7058BBD7AC9A60B1B383A3BA23E026F6A53112DE80'+ + 'C191115BB9268DC509D424D8BE1FA7DBDDB7EE5CFD15C57C48A349B1008B4CCE'+ + 'DCC240D31784945260E3814612FD871242FA203F5C1006A6F47FF3A807E3B4DE'+ + '39535FB5523ABED7B4337606E69245EC13BF9B553FD6F45B0FD290D7CBBEB8C8'+ + 'DF2252DE7EB6A83A679873CC9842B52A093ED00742F11CD23CB5278873253E79'+ + '0E30B16AC72B7ACF9824B568ED971D768B95CA9D4C9A40C884542B8696AADF58'+ + '184CE6376E51451EF8D266ECA691ECAB25E15AA8E527312755A55C2B7D390AD9'; +var + Slip,Tmp:AnsiString; + Len,v2,v5:Cardinal; + FGInt,exp,modb,res:TFGInt; + i:Integer; + Stream:TMemoryStream; + SearchRec:TSearchRec; +begin + Result:=False; + if (Trim(SerialNumber)='') or (Trim(RegistrationCode)='') or + (TryStrToInt(Trim(RegistrationCode),i)=False) then Exit; + + Slip:=AnsiString(CreateLicenseText(SerialNumber,RegistrationCode,RadStudioVersion)); + + Len:= Length(Slip); + Len:=(Swap(loWord(Len)) shl 16) or Swap(HiWord(Len)); + Tmp:=PChar(@Len)^+(PChar(@Len)+1)^+(PChar(@Len)+2)^+(PChar(@Len)+3)^+Slip; + Tmp:='01'+StringOfChar('F',66)+'00'+UpperCase(SHA1Print(SHA1String(Tmp))); + + ConvertHexStringToBase256String(Tmp,Tmp); + Base256StringToFGInt(Tmp,FGInt); + + ConvertHexStringToBase256String(ExpStr,Tmp); + Base256StringToFGInt(Tmp,exp); + + ConvertHexStringToBase256String(ModStr,Tmp); + Base256StringToFGInt(Tmp,modb); + + FGIntModExp(FGInt,exp,modb,res); + FGIntToBase256String(res,Tmp); + PGPConvertBase256to64(Tmp,Tmp); + + FGIntDestroy(FGInt); + FGIntDestroy(exp); + FGIntDestroy(modb); + FGIntDestroy(res); + + Slip:=StringReplace(Slip,'e.sign'#10'0'#10,'e.sign'#10'CgeEeu66fCgQJBaqKQwwyiqyHYb22nc2VZRmQVasSDnZAtB/QTLt0CYdgdN16XCz/Nt032fMwTsytchG0l2UeA=='#10,[rfReplaceAll]); + Slip:=StringReplace(Slip,'e.sign2'#10'0'#10,'e.sign2'#10'JWKzOwTKBL+zOP5wrouG5ta/mH+Fvsgb7hb8oJTzu4r3gK/6sh95zKAWKiydqsgvV9pxPXTAlkxv9wAecqJKTQ=='#10,[rfReplaceAll]); + Slip:=StringReplace(Slip,'e.sign3'#10'0'#10,'e.sign3'#10+Tmp+#10,[rfReplaceAll]); + + v2:=$E7F931C2; + for i := 0 to Length(Slip) - 1 do + begin + Slip[i+1]:=Chr(Ord(Slip[i+1]) xor ((v2 shr 24) and $FF)); + v5:=Ord(Slip[i+1]); + if (v5 and $80)=$80 then v5:=v5 or $ffffff00; + v5:= v5 xor v2; + v5:=(v5 shl 8) xor v5; + v5:=(v5 shl 16) xor v5; + v5:=(v5 shl 24) xor v5; + v2:=v5; + end; + + v2:=(Swap(loWord(v2)) shl 16) or Swap(HiWord(v2)); + Len:=Length(Slip); + Len:=(Swap(loWord(Len)) shl 16) or Swap(HiWord(Len)); + + Stream:=TMemoryStream.Create; + try + Stream.Write(v2,4); + Stream.Write(Len,4); + Stream.Write(Slip[1],Length(Slip)); + if (FileName='') or (not DirectoryExists(ExtractFilePath(FileName))) then + begin + if DirectoryExists(GetAppDataPath+'\Embarcadero') then + begin + Tmp:=Format('%s\Embarcadero\.%d_%d.19*.slip',[GetAppDataPath,RadStudioVersion^.LicHostPID,RadStudioVersion^.LicHostSKU]); +{ + if (FindFirst(Tmp,faAnyFile,SearchRec)=0) and + (MessageBox(0,PAnsiChar(Format('Do you want to Delete the old slip file int %s folder',[GetAppDataPath])), 'Rad Studio Keygen',MB_YESNO + MB_ICONQUESTION) = IDYES) then +} + if (FindFirst(Tmp,faAnyFile,SearchRec)=0) then + begin + DeleteFile(PAnsiChar(Format('%s\Embarcadero\%s',[GetAppDataPath,SearchRec.Name]))); + while FindNext(SearchRec)=0 do + begin + DeleteFile(PAnsiChar(Format('%s\Embarcadero\%s',[GetAppDataPath,SearchRec.Name]))); + end; + end; + SysUtils.FindClose(SearchRec); + FileName:=Format('%s\Embarcadero\.%d_%d.19%d%d%d%d%d%d%d%d%d%d%d.slip',[GetAppDataPath,RadStudioVersion^.LicHostPID,RadStudioVersion^.LicHostSKU, + Random(10),Random(10),Random(10),Random(10),Random(10), + Random(10),Random(10),Random(10),Random(10),Random(10),Random(10)]); + end + else + FileName:=ExtractFileDir(ParamStr(0))+'\RAD Studio Activation.slip'; + end; + Stream.SaveToFile(FileName); + PatchmOasisRuntime(RadStudioVersion); + Result:=True; + finally + Stream.Free; + end; +end; + +function PatchFile(RadStudioVersion:PRadStudioVersion;var FileName:string):Boolean; +var + Stream:TMemoryStream; + Reg:TRegistry; + RootDir:string; +begin + Result:=False; + RootDir:=''; + FileName:=''; + Reg:=TRegistry.Create; + try + Reg.RootKey:=HKEY_LOCAL_MACHINE; + Reg.OpenKey(Format('SOFTWARE\Embarcadero\BDS\%s',[RadStudioVersion^.BDSVersion]), False); + RootDir:=Reg.ReadString('RootDir'); + finally + Reg.Free; + end; + if DirectoryExists(RootDir+'\Bin') and FileExists(RootDir+'\Bin\bds.exe') and FileExists(RootDir+'\Bin\LicenseManager.exe') then + begin + if (SHA1Print(SHA1File(RootDir+'\Bin\bds.exe'))=RadStudioVersion^.BdsPatchInfo.Sha1) and + (SHA1Print(SHA1File(RootDir+'\Bin\LicenseManager.exe'))=RadStudioVersion^.LicenseManagerPatchInfo.Sha1) then + begin + CreateSHFolderData(RadStudioVersion); + FileName:= RootDir+'\Bin\SHFolder.dll'; + Stream:=TMemoryStream.Create; + try + Stream.Write(SHFolderData,Length(SHFolderData)); + Stream.SaveToFile(FileName); + Result:=True; + finally + Stream.Free; + end; + end; + end; +end; + +end. diff --git a/10.1.UP2/Keygen/RadLicense.pas b/10.1.UP2/Keygen/RadLicense.pas new file mode 100644 index 0000000..23fd4ae --- /dev/null +++ b/10.1.UP2/Keygen/RadLicense.pas @@ -0,0 +1,313 @@ +unit RadLicense; + +interface +uses RadVersion,SysUtils; + +function CreateLicenseText(SerialNumber,ActiveCode:string;RadStudioVersion:PRadStudioVersion):string; + +implementation + +function CreateLicenseText(SerialNumber,ActiveCode:string;RadStudioVersion:PRadStudioVersion):string; +var + pid,skuid:string; +begin + pid:=IntToStr(RadStudioVersion^.LicHostPID); + skuid:=IntToStr(RadStudioVersion^.LicHostSKU); + + Result:='11'#10; + Result:=Result+'e.pkg'#10'RAD Studio '+ RadStudioVersion^.LicVerStr +' Architect'#10; + Result:=Result+'e.pt'#10'10'#10; + Result:=Result+'e.sign'#10'0'#10; + Result:=Result+'e.sign2'#10'0'#10; + Result:=Result+'e.sign3'#10'0'#10; + Result:=Result+'export.allowed'#10'0'#10; + Result:=Result+'import.allowed'#10'1'#10; + Result:=Result+'import.silent'#10'1'#10; + Result:=Result+'licensed.serialno'#10+SerialNumber+#10; + Result:=Result+'nodelock.node'#10'0'#10; + Result:=Result+'nodelock.session'#10+ActiveCode+#10; + + Result:=Result+'2'#10; + + Result:=Result+'26'#10; + Result:=Result+'active'#10'T'#10; + Result:=Result+'beta'#10'0'#10; + Result:=Result+'exportable'#10'0'#10; + Result:=Result+'hostpid'#10+pid+#10; + Result:=Result+'hostskuid'#10+skuid+#10; + Result:=Result+'internaluse'#10'0'#10; + Result:=Result+'naggy'#10'0'#10; + Result:=Result+'noncommercial'#10'0'#10; + Result:=Result+'noncommercial_label'#10'No'#10; + Result:=Result+'platform'#10'1'#10; + Result:=Result+'platform_label'#10'Windows'#10; + Result:=Result+'product'#10'2000'#10; + Result:=Result+'productid'#10+ RadStudioVersion^.LicDelphiPID +#10; + Result:=Result+'productid_label'#10'Delphi '+ RadStudioVersion^.LicVerStr +#10; + Result:=Result+'productsku'#10+skuid+#10; + Result:=Result+'productsku_label'#10'Architect'#10; + Result:=Result+'rndkey'#10'13371337'#10; + Result:=Result+'serialno'#10+SerialNumber+#10; + Result:=Result+'sku'#10+skuid+#10; + Result:=Result+'templicense'#10'0'#10; + Result:=Result+'termtype'#10'0'#10; + Result:=Result+'termtype_label'#10'Permanent'#10; + Result:=Result+'title'#10'Delphi '+ RadStudioVersion^.LicVerStr +' Architect'#10; + Result:=Result+'trial'#10'0'#10; + Result:=Result+'upgrade'#10'0'#10; + Result:=Result+'version'#10'24'#10; + Result:=Result+'27'#10; + Result:=Result+'Android'#10'T'#10; + Result:=Result+'DESIGNDIAGRAMS'#10'TRUE'#10; + Result:=Result+'DESIGNPROJECTS'#10'TRUE'#10; + Result:=Result+'Desktop'#10'T'#10; + Result:=Result+'FULLQA'#10'TRUE'#10; + Result:=Result+'FirstRegistered'#10'9151978200000'#10; + Result:=Result+'FulliOS'#10'T'#10; + Result:=Result+'MODELLING'#10'TRUE'#10; + Result:=Result+'Mobile'#10'T'#10; + Result:=Result+'OSX32'#10'T'#10; + Result:=Result+'Win32'#10'T'#10; + Result:=Result+'Win64'#10'T'#10; + Result:=Result+'a100'#10'MakeThingsHappen'#10; + Result:=Result+'a1000'#10'PrintMoreMoney'#10; + Result:=Result+'a101'#10'ImGivinItAllShesGot'#10; + Result:=Result+'a200'#10'StampIt'#10; + Result:=Result+'a250'#10'ItsToolTimeBaby'#10; + Result:=Result+'a300'#10'TheMalteseFalcon'#10; + Result:=Result+'a301'#10'GlueSolvent'#10; + Result:=Result+'a3013'#10'GlueSolvent'#10; + Result:=Result+'crd'#10'9151978200000'#10; + Result:=Result+'hostsuite'#10+pid+#10; + Result:=Result+'iOSDevice'#10'T'#10; + Result:=Result+'iOSDevice32'#10'T'#10; + Result:=Result+'iOSDevice64'#10'T'#10; + Result:=Result+'iOSSimulator'#10'T'#10; + Result:=Result+'updatelevel'#10'0.0'#10; + + Result:=Result+'26'#10; + Result:=Result+'active'#10'T'#10; + Result:=Result+'beta'#10'0'#10; + Result:=Result+'exportable'#10'0'#10; + Result:=Result+'hostpid'#10+pid+#10; + Result:=Result+'hostskuid'#10+skuid+#10; + Result:=Result+'internaluse'#10'0'#10; + Result:=Result+'naggy'#10'0'#10; + Result:=Result+'noncommercial'#10'0'#10; + Result:=Result+'noncommercial_label'#10'No'#10; + Result:=Result+'platform'#10'1'#10; + Result:=Result+'platform_label'#10'Windows'#10; + Result:=Result+'product'#10'4000'#10; + Result:=Result+'productid'#10+ RadStudioVersion^.LicCBuilderPID +#10; + Result:=Result+'productid_label'#10'C++Builder '+ RadStudioVersion^.LicVerStr +#10; + Result:=Result+'productsku'#10+skuid+#10; + Result:=Result+'productsku_label'#10'Architect'#10; //Architect + Result:=Result+'rndkey'#10'13371337'#10; + Result:=Result+'serialno'#10+SerialNumber+#10; + Result:=Result+'sku'#10+skuid+#10; + Result:=Result+'templicense'#10'0'#10; + Result:=Result+'termtype'#10'0'#10; + Result:=Result+'termtype_label'#10'Permanent'#10; + Result:=Result+'title'#10'C++Builder '+ RadStudioVersion^.LicVerStr +' Architect'#10; + Result:=Result+'trial'#10'0'#10; + Result:=Result+'upgrade'#10'0'#10; + Result:=Result+'version'#10'17'#10; + Result:=Result+'26'#10; + Result:=Result+'Android'#10'T'#10; + Result:=Result+'DESIGNDIAGRAMS'#10'TRUE'#10; + Result:=Result+'DESIGNPROJECTS'#10'TRUE'#10; + Result:=Result+'Desktop'#10'T'#10; + Result:=Result+'FULLQA'#10'TRUE'#10; + Result:=Result+'FirstRegistered'#10'9151978200000'#10; + Result:=Result+'FulliOS'#10'T'#10; + Result:=Result+'MODELLING'#10'TRUE'#10; + Result:=Result+'Mobile'#10'T'#10; + Result:=Result+'OSX32'#10'T'#10; + Result:=Result+'Win32'#10'T'#10; + Result:=Result+'Win64'#10'T'#10; + Result:=Result+'a100'#10'MakeThingsHappen'#10; + Result:=Result+'a1000'#10'PrintMoreMoney'#10; + Result:=Result+'a101'#10'ImGivinItAllShesGot'#10; + Result:=Result+'a200'#10'StampIt'#10; + Result:=Result+'a250'#10'ItsToolTimeBaby'#10; + Result:=Result+'a300'#10'TheMalteseFalcon'#10; + Result:=Result+'a301'#10'GlueSolvent'#10; + Result:=Result+'crd'#10'9151978200000'#10; + Result:=Result+'hostsuite'#10+pid+#10; + Result:=Result+'iOSDevice'#10'T'#10; + Result:=Result+'iOSDevice32'#10'T'#10; + Result:=Result+'iOSDevice64'#10'T'#10; + Result:=Result+'iOSSimulator'#10'T'#10; + Result:=Result+'updatelevel'#10'0.0'#10; + + { + Result:=Result+'26'#10; + Result:=Result+'active'#10'T'#10; + Result:=Result+'beta'#10'0'#10; + Result:=Result+'exportable'#10'0'#10; + Result:=Result+'hostpid'#10+pid+#10; + Result:=Result+'hostskuid'#10+skuid+#10; + Result:=Result+'internaluse'#10'0'#10; + Result:=Result+'naggy'#10'0'#10; + Result:=Result+'noncommercial'#10'0'#10; + Result:=Result+'noncommercial_label'#10'No'#10; + Result:=Result+'platform'#10'0'#10; + Result:=Result+'platform_label'#10'Cross platform'#10; + Result:=Result+'product'#10'7000'#10; + Result:=Result+'productid'#10'7111'#10; + Result:=Result+'productid_label'#10'InterBase XE7'#10; //InterBase XE7 + Result:=Result+'productsku'#10'0'#10; + Result:=Result+'productsku_label'#10'Server'#10; //Server + Result:=Result+'rndkey'#10'13371337'#10; + Result:=Result+'serialno'#10+SerialNumber+#10; + Result:=Result+'sku'#10'0'#10; + Result:=Result+'templicense'#10'0'#10; + Result:=Result+'termtype'#10'0'#10; + Result:=Result+'termtype_label'#10'Unlimited'#10; + Result:=Result+'title'#10'InterBase XE7 Server'#10; //InterBase XE7 Server + Result:=Result+'trial'#10'0'#10; + Result:=Result+'upgrade'#10'0'#10; + Result:=Result+'version'#10'6'#10; + Result:=Result+'22'#10; + Result:=Result+'FirstRegistered'#10'9151978200000'#10; + Result:=Result+'changeView'#10'1'#10; + Result:=Result+'connectionMonitoring'#10'1'#10; + Result:=Result+'connectionsPerUser'#10'200'#10; + Result:=Result+'customVarId'#10' '#10; + Result:=Result+'databaseAccess'#10'1'#10; + Result:=Result+'dbEncryption'#10'1'#10; + Result:=Result+'ddlOperations'#10'1'#10; + Result:=Result+'devLicense'#10'1'#10; + Result:=Result+'externalFileAccess'#10'1'#10; + Result:=Result+'internetAccess'#10'1'#10; + Result:=Result+'languages'#10'ALL'#10; + Result:=Result+'licensedCpus'#10'32'#10; + Result:=Result+'licensedUsers'#10'5000'#10; + Result:=Result+'nodeID'#10' '#10; + Result:=Result+'otwEncryption'#10'1'#10; + Result:=Result+'remoteAccess'#10'1'#10; + Result:=Result+'serverAccess'#10'1'#10; + Result:=Result+'togoAccess'#10'0'#10; + Result:=Result+'updatelevel'#10'0.0'#10; + Result:=Result+'useAddons'#10'0'#10; + Result:=Result+'version'#10'12.0'#10; + + Result:=Result+'26'#10; + Result:=Result+'active'#10'T'#10; + Result:=Result+'beta'#10'0'#10; + Result:=Result+'exportable'#10'0'#10; + Result:=Result+'hostpid'#10+pid+#10; + Result:=Result+'hostskuid'#10+skuid+#10; + Result:=Result+'internaluse'#10'0'#10; + Result:=Result+'naggy'#10'0'#10; + Result:=Result+'noncommercial'#10'0'#10; + Result:=Result+'noncommercial_label'#10'No'#10; + Result:=Result+'platform'#10'0'#10; + Result:=Result+'platform_label'#10'Cross platform'#10; + Result:=Result+'product'#10'7000'#10; + Result:=Result+'productid'#10'7111'#10; + Result:=Result+'productid_label'#10'InterBase XE7'#10; //InterBase XE7 + Result:=Result+'productsku'#10'16'#10; + Result:=Result+'productsku_label'#10'ToGo Edition'#10; //ToGo Edition + Result:=Result+'rndkey'#10'13371337'#10; + Result:=Result+'serialno'#10+SerialNumber+#10; + Result:=Result+'sku'#10'16'#10; + Result:=Result+'templicense'#10'0'#10; + Result:=Result+'termtype'#10'0'#10; + Result:=Result+'termtype_label'#10'Unlimited'#10; + Result:=Result+'title'#10'InterBase XE7 ToGo Edition'#10; //InterBase XE7 ToGo Edition + Result:=Result+'trial'#10'0'#10; + Result:=Result+'upgrade'#10'0'#10; + Result:=Result+'version'#10'6'#10; + Result:=Result+'22'#10; + Result:=Result+'FirstRegistered'#10'9151978200000'#10; + Result:=Result+'changeView'#10'1'#10; + Result:=Result+'connectionMonitoring'#10'1'#10; + Result:=Result+'connectionsPerUser'#10'200'#10; + Result:=Result+'customVarId'#10' '#10; + Result:=Result+'databaseAccess'#10'1'#10; + Result:=Result+'dbEncryption'#10'1'#10; + Result:=Result+'ddlOperations'#10'1'#10; + Result:=Result+'devLicense'#10'1'#10; + Result:=Result+'externalFileAccess'#10'1'#10; + Result:=Result+'internetAccess'#10'1'#10; + Result:=Result+'languages'#10'ALL'#10; + Result:=Result+'licensedCpus'#10'32'#10; + Result:=Result+'licensedUsers'#10'5000'#10; + Result:=Result+'nodeID'#10' '#10; + Result:=Result+'otwEncryption'#10'1'#10; + Result:=Result+'remoteAccess'#10'1'#10; + Result:=Result+'serverAccess'#10'1'#10; + Result:=Result+'togoAccess'#10'1'#10; + Result:=Result+'updatelevel'#10'0.0'#10; + Result:=Result+'useAddons'#10'0'#10; + Result:=Result+'version'#10'12.0'#10; + + Result:=Result+'26'#10; + Result:=Result+'active'#10'T'#10; + Result:=Result+'beta'#10'0'#10; + Result:=Result+'exportable'#10'0'#10; + Result:=Result+'hostpid'#10+pid+#10; + Result:=Result+'hostskuid'#10+skuid+#10; + Result:=Result+'internaluse'#10'0'#10; + Result:=Result+'naggy'#10'0'#10; + Result:=Result+'noncommercial'#10'0'#10; + Result:=Result+'noncommercial_label'#10'No'#10; + Result:=Result+'platform'#10'1'#10; + Result:=Result+'platform_label'#10'Windows'#10; + Result:=Result+'product'#10'2700'#10; + Result:=Result+'productid'#10'2705'#10; + Result:=Result+'productid_label'#10'HTML5 Builder'#10; //HTML5 Builder + Result:=Result+'productsku'#10'0'#10; + Result:=Result+'productsku_label'#10'RadPHP'#10; //RadPHP + Result:=Result+'rndkey'#10'13371337'#10; + Result:=Result+'serialno'#10+SerialNumber+#10; + Result:=Result+'sku'#10'0'#10; + Result:=Result+'templicense'#10'0'#10; + Result:=Result+'termtype'#10'0'#10; + Result:=Result+'termtype_label'#10'Permanent'#10; + Result:=Result+'title'#10'HTML5 Builder'#10; //HTML5 Builder + Result:=Result+'trial'#10'0'#10; + Result:=Result+'upgrade'#10'0'#10; + Result:=Result+'version'#10'5'#10; + Result:=Result+'1'#10; + Result:=Result+'updatelevel'#10'0.0'#10; + + Result:=Result+'26'#10; + Result:=Result+'active'#10'T'#10; + Result:=Result+'beta'#10'0'#10; + Result:=Result+'exportable'#10'0'#10; + Result:=Result+'hostpid'#10+pid+#10; + Result:=Result+'hostskuid'#10+skuid+#10; + Result:=Result+'internaluse'#10'0'#10; + Result:=Result+'naggy'#10'0'#10; + Result:=Result+'noncommercial'#10'0'#10; + Result:=Result+'noncommercial_label'#10'No'#10; + Result:=Result+'platform'#10'1'#10; + Result:=Result+'platform_label'#10'Windows'#10; + Result:=Result+'product'#10'14100'#10; + Result:=Result+'productid'#10'14110'#10; + Result:=Result+'productid_label'#10'ER/Studio 2016'#10; + Result:=Result+'productsku'#10'15'#10; + Result:=Result+'productsku_label'#10'Developer MultiPlatform'#10; //Developer MultiPlatform + Result:=Result+'rndkey'#10'13371337'#10; + Result:=Result+'serialno'#10+SerialNumber+#10; + Result:=Result+'sku'#10'15'#10; + Result:=Result+'templicense'#10'0'#10; + Result:=Result+'termtype'#10'0'#10; + Result:=Result+'termtype_label'#10'Permanent'#10; + Result:=Result+'title'#10'ER/Studio Developer 2016'#10; + Result:=Result+'trial'#10'0'#10; + Result:=Result+'upgrade'#10'0'#10; + Result:=Result+'version'#10'10'#10; + Result:=Result+'3'#10; + Result:=Result+'CrossPlatform'#10'T'#10; + Result:=Result+'baseLicense'#10'Developer'#10; + Result:=Result+'updatelevel'#10'0.0'#10; + } + + +end; + + +end. diff --git a/10.1.UP2/Keygen/RadVersion.pas b/10.1.UP2/Keygen/RadVersion.pas new file mode 100644 index 0000000..45d0795 --- /dev/null +++ b/10.1.UP2/Keygen/RadVersion.pas @@ -0,0 +1,168 @@ +unit RadVersion; + +interface +uses Windows,Classes,SysUtils; +type + TPatchInfo=record + Crc:DWORD; + Sha1:string; + PatchOffset:DWORD; + FinalizeArrayOffset:DWORD; + end; + + TRadStudioVersion=record + Name:string; // Rad Studio 10.1 Berlin Update1 + Ver:string; // 24.0.24468.8770 + BDSVersion:string; // 18.0 + LicVerStr:string; // 10.1 Berlin + LicHostPID:Integer; // 8218 + LicHostSKU:Integer; // 53 + LicDelphiPID:string; + LicCBuilderPID:string; + BdsPatchInfo:TPatchInfo; + LicenseManagerPatchInfo:TPatchInfo; + mOasisRuntimePatchInfo:TPatchInfo; + SetupGUID:string; + ISOUrl:string; + ISOMd5:string; + end; + PRadStudioVersion=^TRadStudioVersion; +var + RadStudioVersionList:TStringList; +implementation + +procedure InitRadStudioVersion(VerList:TStringList); +var + RadStudioVersion:PRadStudioVersion; +begin + + New(RadStudioVersion); + with RadStudioVersion^ do + begin + Name:='Rad Studio 10.1 Berlin Update1'; + Ver:= '24.0.24468.8770'; + BDSVersion:='18.0'; + LicVerStr:= '10.1 Berlin'; + LicHostPID:= 8218; + LicHostSKU:= 53; + LicDelphiPID:='2024'; + LicCBuilderPID:='4021'; + BdsPatchInfo.Crc:=$9626A6DC; + BdsPatchInfo.Sha1:='82d3cd849786f2ece428ab7518ec9ecf47d475e6'; + BdsPatchInfo.PatchOffset:=$51449; + BdsPatchInfo.FinalizeArrayOffset:=$264584; + LicenseManagerPatchInfo.Crc:=$3B314A18; + LicenseManagerPatchInfo.Sha1:='79b342e41f97728e16c6302e08b44f89b0655a9e'; + LicenseManagerPatchInfo.PatchOffset:=$1E8FB5; + LicenseManagerPatchInfo.FinalizeArrayOffset:=$6729E0; + mOasisRuntimePatchInfo.Sha1:='7aa466dd1d2c685edd69ee41d1c8ebc1d2b56bb4'; + mOasisRuntimePatchInfo.PatchOffset:=$00162CBD; + SetupGUID:='{37C118B3-EF7F-4110-BFE5-E866FB456C8E}'; + ISOUrl:='http://altd.embarcadero.com/download/radstudio/10.1/delphicbuilder10_1_upd1.iso'; + ISOMd5:='a85a0fba4f8bab121312184cda85c198'; + end; + VerList.AddObject(RadStudioVersion^.Name,TObject(RadStudioVersion)); + + New(RadStudioVersion); + with RadStudioVersion^ do + begin + Name:='Rad Studio 10.1 Berlin'; + Ver:= '24.0.22858.6822'; + BDSVersion:='18.0'; + LicVerStr:= '10.1 Berlin'; + LicHostPID:= 8218; + LicHostSKU:= 53; + LicDelphiPID:='2024'; + LicCBuilderPID:='4021'; + BdsPatchInfo.Crc:=$1BA3E394; + BdsPatchInfo.Sha1:='a492883335230bced0651338584fbe8c49bd94a8'; + BdsPatchInfo.PatchOffset:=$51449; + BdsPatchInfo.FinalizeArrayOffset:=$264584; + LicenseManagerPatchInfo.Crc:=$D2BAA257; + LicenseManagerPatchInfo.Sha1:='d0d024b97d02608a505fb0e667dd564b53c91b13'; + LicenseManagerPatchInfo.PatchOffset:=$1E9035; + LicenseManagerPatchInfo.FinalizeArrayOffset:=$6719B8; + mOasisRuntimePatchInfo.Sha1:='7aa466dd1d2c685edd69ee41d1c8ebc1d2b56bb4'; + mOasisRuntimePatchInfo.PatchOffset:=$00162CBD; + SetupGUID:='{655CBACE-A23C-42B8-B924-A88E80F352B5}'; + ISOUrl:='http://altd.embarcadero.com/download/radstudio/10.1/delphicbuilder10_1.iso'; + ISOMd5:='466d2db93e5b3b631eabba69d052b28f'; + end; + VerList.AddObject(RadStudioVersion^.Name,TObject(RadStudioVersion)); + + New(RadStudioVersion); + with RadStudioVersion^ do + begin + Name:='Rad Studio 10 Seattle Update1'; + Ver:= '23.0.21418.4207'; + BDSVersion:='17.0'; + LicVerStr:= '10 Seattle'; + LicHostPID:= 8217; + LicHostSKU:= 53; + LicDelphiPID:='2023'; + LicCBuilderPID:='4020'; + BdsPatchInfo.Crc:=$b5bd665f; + BdsPatchInfo.Sha1:='e8cc301efc449f90750d921ab73be31d824c08c6'; + BdsPatchInfo.PatchOffset:=$4fe51; + BdsPatchInfo.FinalizeArrayOffset:=$225f84; + LicenseManagerPatchInfo.Crc:=$8395454d; + LicenseManagerPatchInfo.Sha1:='0ca4640d6c1c2f470ff3182809b881a97e76e534'; + LicenseManagerPatchInfo.PatchOffset:=$1ca696; + LicenseManagerPatchInfo.FinalizeArrayOffset:=$6306ac; + mOasisRuntimePatchInfo.Sha1:='7aa466dd1d2c685edd69ee41d1c8ebc1d2b56bb4'; + mOasisRuntimePatchInfo.PatchOffset:=$00162CBD; + SetupGUID:='{5D50B637-4756-435A-816E-68ABFE86FC69}'; + ISOUrl:='http://altd.embarcadero.com/download/radstudio/10/delphicbuilder10___upd1.iso'; + ISOMd5:='34bf51b0f017541b8521e7efd2b6fbee'; + end; + VerList.AddObject(RadStudioVersion^.Name,TObject(RadStudioVersion)); + + New(RadStudioVersion); + with RadStudioVersion^ do + begin + Name:='Rad Studio 10 Seattle'; + Ver:= '23.0.20618.2753'; + BDSVersion:='17.0'; + LicVerStr:= '10 Seattle'; + LicHostPID:= 8217; + LicHostSKU:= 53; + LicDelphiPID:='2023'; + LicCBuilderPID:='4020'; + BdsPatchInfo.Crc:=$59176e2b; + BdsPatchInfo.Sha1:='0f4255ee60dc860bdcf75c3358d03674757474a5'; + BdsPatchInfo.PatchOffset:=$500ea; + BdsPatchInfo.FinalizeArrayOffset:=$225ec8; + LicenseManagerPatchInfo.Crc:=$d06c02b0; + LicenseManagerPatchInfo.Sha1:='4ff37906e7283448aecab34c73c8dbe3d45f55a6'; + LicenseManagerPatchInfo.PatchOffset:=$1ca98a; + LicenseManagerPatchInfo.FinalizeArrayOffset:=$630634; + mOasisRuntimePatchInfo.Sha1:='7aa466dd1d2c685edd69ee41d1c8ebc1d2b56bb4'; + mOasisRuntimePatchInfo.PatchOffset:=$00162CBD; + SetupGUID:='{09FECC13-2950-4AE6-BB23-05C206979F18}'; + ISOUrl:='http://altd.embarcadero.com/download/radstudio/10/delphicbuilder10.iso'; + ISOMd5:='9d4bac568aced7f1f82d4a44124fb37c'; + end; + VerList.AddObject(RadStudioVersion^.Name,TObject(RadStudioVersion)); + +end; + +procedure FinallyRadStudioVersion(VerList:TStringList); +var + RadStudioVersion:PRadStudioVersion; +begin + while VerList.Count>0 do + begin + RadStudioVersion:=PRadStudioVersion(VerList.Objects[0]); + if RadStudioVersion<>nil then Dispose(RadStudioVersion); + VerList.Delete(0); + end; +end; + +initialization + RadStudioVersionList:= TStringList.Create; + InitRadStudioVersion(RadStudioVersionList); +finalization + FinallyRadStudioVersion(RadStudioVersionList); + FreeAndNil(RadStudioVersionList); + +end. diff --git a/10.1.UP2/Keygen/SHFolderDll.pas b/10.1.UP2/Keygen/SHFolderDll.pas new file mode 100644 index 0000000..0d8be8a --- /dev/null +++ b/10.1.UP2/Keygen/SHFolderDll.pas @@ -0,0 +1,894 @@ +unit SHFolderDll; + +interface +uses RadVersion,Windows; + + procedure CreateSHFolderData(RadStudioVersion:PRadStudioVersion); + +var + SHFolderData: array[0..13823] of byte = ( + $4D, $5A, $90, $00, $03, $00, $00, $00, $04, $00, $00, $00, $FF, $FF, $00, $00, + $B8, $00, $00, $00, $00, $00, $00, $00, $40, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $D8, $00, $00, $00, + $0E, $1F, $BA, $0E, $00, $B4, $09, $CD, $21, $B8, $01, $4C, $CD, $21, $54, $68, + $69, $73, $20, $70, $72, $6F, $67, $72, $61, $6D, $20, $63, $61, $6E, $6E, $6F, + $74, $20, $62, $65, $20, $72, $75, $6E, $20, $69, $6E, $20, $44, $4F, $53, $20, + $6D, $6F, $64, $65, $2E, $0D, $0D, $0A, $24, $00, $00, $00, $00, $00, $00, $00, + $C9, $E7, $94, $1A, $8D, $86, $FA, $49, $8D, $86, $FA, $49, $8D, $86, $FA, $49, + $68, $DF, $FE, $48, $88, $86, $FA, $49, $84, $FE, $69, $49, $88, $86, $FA, $49, + $8D, $86, $FB, $49, $A7, $86, $FA, $49, $7F, $DF, $F3, $48, $8A, $86, $FA, $49, + $7F, $DF, $FA, $48, $8C, $86, $FA, $49, $7F, $DF, $05, $49, $8C, $86, $FA, $49, + $7F, $DF, $F8, $48, $8C, $86, $FA, $49, $52, $69, $63, $68, $8D, $86, $FA, $49, + $00, $00, $00, $00, $00, $00, $00, $00, $50, $45, $00, $00, $4C, $01, $05, $00, + $E1, $70, $F1, $55, $00, $00, $00, $00, $00, $00, $00, $00, $E0, $00, $02, $21, + $0B, $01, $0E, $00, $00, $1C, $00, $00, $00, $18, $00, $00, $00, $00, $00, $00, + $80, $18, $00, $00, $00, $10, $00, $00, $00, $30, $00, $00, $00, $00, $00, $10, + $00, $10, $00, $00, $00, $02, $00, $00, $05, $00, $01, $00, $00, $00, $00, $00, + $05, $00, $01, $00, $00, $00, $00, $00, $00, $70, $00, $00, $00, $04, $00, $00, + $FD, $77, $00, $00, $02, $00, $40, $05, $00, $00, $10, $00, $00, $10, $00, $00, + $00, $00, $10, $00, $00, $10, $00, $00, $00, $00, $00, $00, $10, $00, $00, $00, + $B0, $36, $00, $00, $6B, $00, $00, $00, $28, $38, $00, $00, $3C, $00, $00, $00, + $00, $50, $00, $00, $E0, $01, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $60, $00, $00, $E0, $01, $00, $00, + $30, $36, $00, $00, $1C, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $50, $36, $00, $00, $40, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $30, $00, $00, $B0, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $2E, $74, $65, $78, $74, $00, $00, $00, $0D, $1A, $00, $00, $00, $10, $00, $00, + $00, $1C, $00, $00, $00, $04, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $20, $00, $00, $60, $2E, $72, $64, $61, $74, $61, $00, $00, + $32, $0C, $00, $00, $00, $30, $00, $00, $00, $0E, $00, $00, $00, $20, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $00, $00, $40, + $2E, $64, $61, $74, $61, $00, $00, $00, $8C, $05, $00, $00, $00, $40, $00, $00, + $00, $04, $00, $00, $00, $2E, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $40, $00, $00, $C0, $2E, $72, $73, $72, $63, $00, $00, $00, + $E0, $01, $00, $00, $00, $50, $00, $00, $00, $02, $00, $00, $00, $32, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $40, $00, $00, $40, + $2E, $72, $65, $6C, $6F, $63, $00, $00, $E0, $01, $00, $00, $00, $60, $00, $00, + $00, $02, $00, $00, $00, $34, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $40, $00, $00, $42, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $51, $53, $56, $33, $F6, $56, $68, $80, $00, $00, $00, $6A, $03, $56, $6A, $01, + $68, $00, $00, $00, $80, $51, $FF, $15, $00, $30, $00, $10, $8B, $D8, $83, $FB, + $FF, $0F, $84, $81, $00, $00, $00, $57, $8D, $44, $24, $0C, $89, $74, $24, $0C, + $50, $53, $FF, $15, $04, $30, $00, $10, $8B, $F8, $83, $FF, $FF, $74, $61, $39, + $74, $24, $0C, $75, $5B, $55, $56, $56, $56, $6A, $02, $56, $53, $FF, $15, $08, + $30, $00, $10, $8B, $E8, $83, $FD, $FF, $74, $45, $56, $56, $56, $6A, $04, $55, + $FF, $15, $0C, $30, $00, $10, $8B, $D0, $85, $D2, $74, $2C, $83, $CE, $FF, $8B, + $CA, $85, $FF, $74, $1A, $0F, $B6, $01, $8D, $49, $01, $33, $C6, $C1, $EE, $08, + $0F, $B6, $C0, $33, $34, $85, $D0, $30, $00, $10, $83, $EF, $01, $75, $E6, $52, + $F7, $D6, $FF, $15, $10, $30, $00, $10, $55, $FF, $15, $14, $30, $00, $10, $5D, + $53, $FF, $15, $14, $30, $00, $10, $5F, $8B, $C6, $5E, $5B, $59, $C3, $CC, $CC, + $C7, $44, $24, $10, $00, $00, $00, $00, $C7, $44, $24, $0C, $00, $00, $00, $00, + $FF, $25, $A4, $30, $00, $10, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $FF, $25, $A8, $30, $00, $10, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $33, $C0, $40, $C2, $04, $00, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $51, $81, $B9, $F0, $0F, $00, $00, $78, $56, $34, $12, $53, $8D, $99, $F0, $0F, + $00, $00, $74, $52, $56, $57, $8B, $3D, $18, $30, $00, $10, $8D, $44, $24, $0C, + $50, $6A, $40, $8D, $B1, $40, $F6, $02, $00, $6A, $02, $56, $FF, $D7, $B8, $B3, + $01, $00, $00, $66, $89, $06, $8D, $44, $24, $0C, $50, $FF, $74, $24, $10, $6A, + $02, $56, $FF, $D7, $8D, $44, $24, $0C, $50, $6A, $40, $6A, $04, $53, $FF, $D7, + $8D, $44, $24, $0C, $C7, $03, $78, $56, $34, $12, $50, $FF, $74, $24, $10, $6A, + $04, $53, $FF, $D7, $5F, $5E, $5B, $59, $C3, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $53, $8B, $5C, $24, $14, $56, $57, $8B, $7C, $24, $18, $53, $57, $FF, $74, $24, + $1C, $FF, $74, $24, $1C, $FF, $15, $44, $45, $00, $10, $8B, $F0, $85, $F6, $75, + $5C, $85, $DB, $74, $58, $F7, $C7, $00, $00, $FF, $FF, $74, $50, $66, $39, $07, + $74, $4B, $8B, $57, $04, $F7, $C2, $00, $00, $FF, $FF, $74, $40, $8B, $CA, $66, + $39, $02, $74, $13, $66, $8B, $01, $83, $C1, $02, $66, $83, $F8, $5C, $0F, $44, + $D1, $66, $83, $39, $00, $75, $ED, $0F, $B7, $02, $83, $F8, $73, $74, $05, $83, + $F8, $53, $75, $17, $68, $D0, $34, $00, $10, $52, $FF, $15, $1C, $30, $00, $10, + $85, $C0, $75, $07, $8B, $0B, $E8, $15, $FF, $FF, $FF, $8B, $C6, $5F, $5E, $5B, + $C2, $10, $00, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $50, $A1, $54, $45, $00, $10, $3B, $44, $24, $04, $75, $06, $8B, $45, $B4, $C6, + $00, $01, $58, $FF, $25, $58, $45, $00, $10, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $53, $8B, $5C, $24, $08, $56, $8B, $74, $24, $10, $57, $56, $53, $FF, $15, $3C, + $45, $00, $10, $8B, $F8, $85, $FF, $75, $77, $3B, $1D, $5C, $45, $00, $10, $75, + $6F, $F7, $C6, $00, $00, $FF, $FF, $74, $67, $B9, $F4, $34, $00, $10, $8B, $C6, + $8A, $10, $3A, $11, $75, $1A, $84, $D2, $74, $12, $8A, $50, $01, $3A, $51, $01, + $75, $0E, $83, $C0, $02, $83, $C1, $02, $84, $D2, $75, $E4, $33, $C0, $EB, $05, + $1B, $C0, $83, $C8, $01, $85, $C0, $74, $32, $B8, $10, $35, $00, $10, $66, $90, + $8A, $0E, $3A, $08, $75, $1A, $84, $C9, $74, $12, $8A, $4E, $01, $3A, $48, $01, + $75, $0E, $83, $C6, $02, $83, $C0, $02, $84, $C9, $75, $E4, $33, $C0, $EB, $05, + $1B, $C0, $83, $C8, $01, $85, $C0, $8B, $C7, $75, $05, $B8, $E0, $10, $00, $10, + $5F, $5E, $5B, $C2, $08, $00, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $53, $55, $8B, $6C, $24, $0C, $8B, $5C, $24, $10, $8B, $4C, $24, $14, $8B, $44, + $24, $18, $8B, $54, $24, $1C, $F0, $0F, $C7, $4D, $00, $5D, $5B, $C2, $14, $00, + $74, $67, $60, $8B, $4D, $0C, $03, $C8, $8D, $51, $02, $81, $3A, $49, $6E, $74, + $65, $75, $4F, $81, $7A, $04, $72, $6C, $6F, $63, $75, $46, $81, $7A, $08, $6B, + $65, $64, $43, $75, $3D, $81, $7A, $0C, $6F, $6D, $70, $61, $75, $34, $81, $7A, + $10, $72, $65, $45, $78, $75, $2B, $81, $7A, $14, $63, $68, $61, $6E, $75, $22, + $81, $7A, $18, $67, $65, $36, $34, $75, $19, $80, $7A, $1C, $00, $75, $13, $B8, + $B0, $12, $00, $10, $8B, $55, $14, $89, $02, $61, $33, $C0, $FF, $25, $4C, $45, + $00, $10, $61, $FF, $25, $50, $45, $00, $10, $B8, $7A, $00, $00, $C0, $FF, $25, + $4C, $45, $00, $10, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $51, $56, $8B, $35, $24, $30, $00, $10, $68, $30, $35, $00, $10, $FF, $D6, $68, + $4C, $35, $00, $10, $A3, $60, $45, $00, $10, $FF, $D6, $8B, $35, $28, $30, $00, + $10, $68, $3C, $45, $00, $10, $68, $64, $35, $00, $10, $FF, $35, $60, $45, $00, + $10, $A3, $5C, $45, $00, $10, $FF, $D6, $BA, $10, $12, $00, $10, $8B, $C8, $E8, + $1A, $0B, $00, $00, $68, $74, $35, $00, $10, $FF, $35, $64, $45, $00, $10, $FF, + $D6, $85, $C0, $0F, $84, $6F, $01, $00, $00, $83, $3D, $60, $45, $00, $10, $00, + $0F, $84, $62, $01, $00, $00, $8B, $0D, $64, $45, $00, $10, $53, $55, $8D, $98, + $00, $FC, $FF, $FF, $8B, $51, $3C, $57, $8D, $78, $C0, $8B, $6C, $0A, $2C, $03, + $E9, $8B, $4C, $0A, $1C, $03, $CD, $3B, $DD, $89, $4C, $24, $10, $0F, $42, $DD, + $3B, $FB, $0F, $86, $2D, $01, $00, $00, $8D, $77, $03, $0F, $1F, $44, $00, $00, + $8B, $07, $25, $FF, $F8, $FF, $00, $3D, $C1, $E8, $1F, $00, $0F, $85, $E4, $00, + $00, $00, $8D, $56, $08, $8B, $CE, $3B, $F2, $0F, $83, $D7, $00, $00, $00, $90, + $8B, $01, $25, $FF, $F8, $FF, $00, $3D, $80, $E0, $01, $00, $74, $0A, $41, $3B, + $CA, $72, $ED, $E9, $BE, $00, $00, $00, $3B, $CA, $0F, $83, $B6, $00, $00, $00, + $83, $C1, $03, $8D, $51, $08, $3B, $CA, $0F, $83, $A8, $00, $00, $00, $66, $90, + $8B, $01, $25, $FF, $C7, $FF, $00, $3D, $88, $45, $13, $00, $74, $0A, $41, $3B, + $CA, $72, $ED, $E9, $8E, $00, $00, $00, $3B, $CA, $0F, $83, $86, $00, $00, $00, + $83, $C1, $03, $8D, $41, $08, $3B, $C8, $0F, $83, $78, $00, $00, $00, $BA, $0F, + $85, $00, $00, $66, $39, $11, $74, $07, $41, $3B, $C8, $72, $F6, $EB, $67, $3B, + $C8, $73, $63, $83, $C1, $06, $8D, $51, $08, $3B, $CA, $73, $59, $0F, $1F, $00, + $8B, $01, $25, $FF, $C7, $FF, $00, $3D, $8B, $45, $0C, $00, $74, $07, $41, $3B, + $CA, $72, $ED, $EB, $41, $3B, $CA, $73, $3D, $83, $C1, $03, $8D, $41, $08, $3B, + $C8, $73, $33, $BA, $0F, $84, $00, $00, $66, $39, $11, $74, $07, $41, $3B, $C8, + $72, $F6, $EB, $22, $3B, $C8, $73, $1E, $8D, $51, $06, $03, $51, $02, $3B, $D5, + $72, $14, $3B, $54, $24, $10, $73, $0E, $80, $3A, $B8, $75, $09, $81, $7A, $01, + $7A, $00, $00, $C0, $74, $10, $4F, $4E, $3B, $FB, $0F, $87, $00, $FF, $FF, $FF, + $5F, $5D, $5B, $5E, $59, $C3, $8D, $41, $06, $A3, $50, $45, $00, $10, $8D, $42, + $05, $68, $40, $45, $00, $10, $BA, $D0, $12, $00, $10, $A3, $4C, $45, $00, $10, + $E8, $99, $09, $00, $00, $5F, $5D, $5B, $5E, $59, $C3, $CC, $CC, $CC, $CC, $CC, + $81, $EC, $14, $01, $00, $00, $53, $8B, $1D, $50, $30, $00, $10, $55, $56, $57, + $33, $FF, $33, $ED, $57, $6A, $01, $68, $68, $45, $00, $10, $FF, $D3, $8B, $35, + $6C, $30, $00, $10, $85, $C0, $74, $1D, $83, $FF, $20, $73, $04, $6A, $00, $EB, + $02, $6A, $01, $FF, $D6, $6A, $00, $6A, $01, $68, $68, $45, $00, $10, $47, $FF, + $D3, $85, $C0, $75, $E3, $39, $2D, $6C, $45, $00, $10, $75, $1A, $6A, $00, $6A, + $00, $6A, $00, $FF, $15, $44, $30, $00, $10, $A3, $6C, $45, $00, $10, $85, $C0, + $75, $0A, $8D, $68, $09, $EB, $05, $BD, $01, $00, $00, $00, $6A, $00, $68, $68, + $45, $00, $10, $FF, $15, $40, $30, $00, $10, $85, $ED, $0F, $85, $BC, $00, $00, + $00, $68, $8C, $35, $00, $10, $FF, $15, $24, $30, $00, $10, $68, $44, $45, $00, + $10, $68, $A0, $35, $00, $10, $50, $A3, $64, $45, $00, $10, $FF, $15, $28, $30, + $00, $10, $BA, $60, $11, $00, $10, $8B, $C8, $E8, $E0, $08, $00, $00, $85, $C0, + $0F, $85, $87, $00, $00, $00, $32, $C0, $8D, $7C, $24, $10, $B9, $14, $01, $00, + $00, $F3, $AA, $8D, $44, $24, $10, $C7, $44, $24, $10, $14, $01, $00, $00, $50, + $FF, $15, $20, $30, $00, $10, $85, $C0, $74, $13, $83, $7C, $24, $20, $02, $75, + $07, $83, $7C, $24, $14, $05, $77, $05, $E8, $43, $FD, $FF, $FF, $33, $FF, $57, + $6A, $01, $68, $68, $45, $00, $10, $FF, $D3, $85, $C0, $74, $20, $0F, $1F, $00, + $83, $FF, $20, $73, $04, $6A, $00, $EB, $02, $6A, $01, $FF, $D6, $6A, $00, $6A, + $01, $68, $68, $45, $00, $10, $47, $FF, $D3, $85, $C0, $75, $E3, $83, $3D, $6C, + $45, $00, $10, $00, $74, $0A, $B9, $01, $00, $00, $00, $E8, $ED, $06, $00, $00, + $6A, $00, $68, $68, $45, $00, $10, $FF, $15, $40, $30, $00, $10, $5F, $5E, $5D, + $5B, $81, $C4, $14, $01, $00, $00, $C3, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $53, $8B, $1D, $50, $30, $00, $10, $56, $33, $F6, $56, $6A, $01, $68, $68, $45, + $00, $10, $FF, $D3, $85, $C0, $74, $26, $57, $8B, $3D, $6C, $30, $00, $10, $90, + $83, $FE, $20, $73, $04, $6A, $00, $EB, $02, $6A, $01, $FF, $D7, $6A, $00, $6A, + $01, $68, $68, $45, $00, $10, $46, $FF, $D3, $85, $C0, $75, $E3, $5F, $83, $3D, + $6C, $45, $00, $10, $00, $5E, $5B, $74, $07, $33, $C9, $E8, $7D, $06, $00, $00, + $6A, $00, $68, $68, $45, $00, $10, $FF, $15, $40, $30, $00, $10, $E9, $51, $07, + $00, $00, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $51, $57, $68, $AC, $35, $00, $10, $FF, $15, $2C, $30, $00, $10, $8B, $F8, $85, + $FF, $0F, $84, $80, $00, $00, $00, $53, $56, $68, $C8, $35, $00, $10, $57, $FF, + $15, $28, $30, $00, $10, $8B, $1D, $18, $30, $00, $10, $8B, $F0, $85, $F6, $74, + $24, $8D, $44, $24, $0C, $50, $6A, $40, $6A, $05, $56, $FF, $D3, $8D, $44, $24, + $0C, $C7, $06, $33, $C0, $C2, $0C, $50, $FF, $74, $24, $10, $C6, $46, $04, $00, + $6A, $FF, $56, $FF, $D3, $68, $D8, $35, $00, $10, $57, $FF, $15, $28, $30, $00, + $10, $8B, $F0, $85, $F6, $74, $24, $8D, $44, $24, $0C, $50, $6A, $40, $6A, $05, + $56, $FF, $D3, $8D, $44, $24, $0C, $C7, $06, $33, $C0, $C2, $0C, $50, $FF, $74, + $24, $10, $C6, $46, $04, $00, $6A, $FF, $56, $FF, $D3, $5E, $5B, $C6, $05, $48, + $45, $00, $10, $00, $5F, $59, $C3, $C6, $05, $48, $45, $00, $10, $01, $5F, $59, + $C3, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, $CC, + $81, $EC, $14, $04, $00, $00, $53, $56, $57, $6A, $00, $FF, $15, $24, $30, $00, + $10, $8B, $D8, $8D, $44, $24, $10, $68, $08, $02, $00, $00, $50, $53, $FF, $15, + $30, $30, $00, $10, $66, $83, $7C, $24, $10, $00, $8D, $4C, $24, $10, $8B, $F1, + $74, $13, $66, $8B, $01, $83, $C1, $02, $66, $83, $F8, $5C, $0F, $44, $F1, $66, + $83, $39, $00, $75, $ED, $8B, $3D, $1C, $30, $00, $10, $68, $EC, $35, $00, $10, + $56, $FF, $D7, $85, $C0, $75, $25, $8D, $4C, $24, $10, $E8, $10, $F8, $FF, $FF, + $3D, $DC, $A6, $26, $96, $74, $07, $3D, $E2, $F5, $99, $11, $75, $72, $8D, $83, + $49, $14, $05, $00, $8D, $BB, $84, $45, $26, $00, $EB, $28, $68, $FC, $35, $00, + $10, $56, $FF, $D7, $85, $C0, $75, $58, $8D, $4C, $24, $10, $E8, $DF, $F7, $FF, + $FF, $3D, $18, $4A, $31, $3B, $75, $48, $8D, $83, $B5, $8F, $1E, $00, $8D, $BB, + $E0, $29, $67, $00, $8B, $35, $18, $30, $00, $10, $A3, $54, $45, $00, $10, $8B, + $07, $A3, $58, $45, $00, $10, $8D, $44, $24, $0C, $50, $6A, $40, $6A, $04, $57, + $FF, $D6, $8D, $44, $24, $0C, $C7, $07, $F0, $11, $00, $10, $50, $FF, $74, $24, + $10, $6A, $04, $57, $FF, $D6, $E8, $75, $FE, $FF, $FF, $E8, $B0, $FC, $FF, $FF, + $5F, $5E, $5B, $81, $C4, $14, $04, $00, $00, $C3, $CC, $CC, $CC, $CC, $CC, $CC, + $8B, $44, $24, $08, $83, $F8, $03, $77, $2F, $FF, $24, $85, $C0, $18, $00, $10, + $E8, $FB, $FE, $FF, $FF, $B8, $01, $00, $00, $00, $C2, $0C, $00, $80, $3D, $48, + $45, $00, $10, $00, $74, $12, $E8, $35, $FE, $FF, $FF, $B8, $01, $00, $00, $00, + $C2, $0C, $00, $E8, $B8, $FD, $FF, $FF, $B8, $01, $00, $00, $00, $C2, $0C, $00, + $B3, $18, $00, $10, $90, $18, $00, $10, $9D, $18, $00, $10, $9D, $18, $00, $10, + $56, $8B, $35, $88, $45, $00, $10, $33, $C0, $85, $F6, $74, $12, $8B, $15, $80, + $45, $00, $10, $3B, $0A, $74, $0B, $40, $83, $C2, $28, $3B, $C6, $72, $F4, $83, + $C8, $FF, $5E, $C3, $8B, $0D, $80, $45, $00, $10, $85, $C9, $75, $2B, $68, $00, + $05, $00, $00, $51, $FF, $35, $6C, $45, $00, $10, $C7, $05, $84, $45, $00, $10, + $20, $00, $00, $00, $FF, $15, $74, $30, $00, $10, $8B, $C8, $89, $0D, $80, $45, + $00, $10, $85, $C9, $75, $3D, $33, $C0, $C3, $8B, $15, $88, $45, $00, $10, $A1, + $84, $45, $00, $10, $3B, $D0, $72, $31, $6B, $C0, $50, $50, $51, $6A, $00, $FF, + $35, $6C, $45, $00, $10, $FF, $15, $70, $30, $00, $10, $8B, $C8, $85, $C9, $74, + $D5, $A1, $84, $45, $00, $10, $03, $C0, $89, $0D, $80, $45, $00, $10, $A3, $84, + $45, $00, $10, $8B, $15, $88, $45, $00, $10, $6B, $C2, $28, $03, $C1, $42, $89, + $15, $88, $45, $00, $10, $C3, $55, $8B, $EC, $81, $EC, $D8, $02, $00, $00, $A1, + $04, $40, $00, $10, $33, $C5, $89, $45, $FC, $8B, $C1, $C7, $85, $30, $FD, $FF, + $FF, $01, $00, $01, $00, $56, $8D, $8D, $30, $FD, $FF, $FF, $89, $85, $28, $FD, + $FF, $FF, $51, $50, $8B, $F2, $FF, $15, $7C, $30, $00, $10, $85, $C0, $0F, $84, + $C3, $00, $00, $00, $53, $83, $FE, $FF, $75, $0A, $8B, $1D, $88, $45, $00, $10, + $33, $F6, $EB, $03, $8D, $5E, $01, $3B, $F3, $0F, $83, $A7, $00, $00, $00, $6B, + $D6, $28, $2B, $DE, $57, $8B, $BD, $28, $FD, $FF, $FF, $89, $95, $2C, $FD, $FF, + $FF, $8B, $35, $80, $45, $00, $10, $8B, $45, $08, $03, $F2, $83, $E8, $00, $74, + $1A, $83, $E8, $01, $74, $10, $83, $E8, $01, $75, $12, $8B, $7E, $14, $C1, $E7, + $1D, $C1, $FF, $1F, $EB, $07, $33, $FF, $47, $EB, $02, $33, $FF, $8B, $56, $14, + $8B, $C2, $C1, $E0, $1E, $C1, $F8, $1F, $3B, $C7, $74, $41, $85, $FF, $74, $70, + $C1, $EA, $03, $33, $C9, $83, $E2, $0F, $76, $14, $0F, $B6, $44, $0E, $18, $03, + $06, $39, $85, $E8, $FD, $FF, $FF, $74, $4D, $41, $3B, $CA, $72, $EC, $33, $C9, + $85, $C9, $74, $19, $8D, $85, $30, $FD, $FF, $FF, $89, $8D, $E8, $FD, $FF, $FF, + $50, $FF, $B5, $28, $FD, $FF, $FF, $FF, $15, $88, $30, $00, $10, $8B, $95, $2C, + $FD, $FF, $FF, $83, $C2, $28, $89, $95, $2C, $FD, $FF, $FF, $83, $EB, $01, $0F, + $85, $6C, $FF, $FF, $FF, $5F, $5B, $8B, $4D, $FC, $33, $CD, $5E, $E8, $50, $0E, + $00, $00, $8B, $E5, $5D, $C3, $0F, $B6, $4C, $31, $20, $03, $4E, $08, $EB, $B0, + $F6, $C2, $01, $74, $0D, $8B, $0E, $8D, $41, $FB, $39, $85, $E8, $FD, $FF, $FF, + $74, $9E, $C1, $EA, $03, $33, $C9, $83, $E2, $0F, $76, $92, $0F, $B6, $44, $0E, + $20, $03, $46, $08, $39, $85, $E8, $FD, $FF, $FF, $74, $0A, $41, $3B, $CA, $72, + $EB, $E9, $78, $FF, $FF, $FF, $0F, $B6, $4C, $31, $18, $03, $0E, $E9, $6E, $FF, + $FF, $FF, $55, $8B, $EC, $83, $EC, $20, $A1, $04, $40, $00, $10, $33, $C5, $89, + $45, $FC, $56, $57, $6A, $00, $6A, $04, $8B, $F1, $FF, $15, $68, $30, $00, $10, + $8B, $F8, $83, $FF, $FF, $0F, $84, $AE, $00, $00, $00, $8D, $45, $E0, $C7, $45, + $E0, $1C, $00, $00, $00, $50, $57, $FF, $15, $58, $30, $00, $10, $E9, $88, $00, + $00, $00, $83, $7D, $E0, $10, $72, $70, $FF, $15, $80, $30, $00, $10, $39, $45, + $EC, $75, $65, $FF, $15, $5C, $30, $00, $10, $39, $45, $E8, $74, $5A, $83, $3E, + $00, $75, $22, $68, $00, $02, $00, $00, $6A, $00, $FF, $35, $6C, $45, $00, $10, + $C7, $46, $04, $80, $00, $00, $00, $FF, $15, $74, $30, $00, $10, $89, $06, $85, + $C0, $74, $4F, $EB, $25, $8B, $46, $04, $39, $46, $08, $72, $1D, $C1, $E0, $03, + $50, $FF, $36, $6A, $00, $FF, $35, $6C, $45, $00, $10, $FF, $15, $70, $30, $00, + $10, $85, $C0, $74, $2D, $D1, $66, $04, $89, $06, $8B, $56, $08, $8B, $0E, $8B, + $45, $E8, $89, $04, $91, $FF, $46, $08, $8D, $45, $E0, $C7, $45, $E0, $1C, $00, + $00, $00, $50, $57, $FF, $15, $54, $30, $00, $10, $85, $C0, $0F, $85, $70, $FF, + $FF, $FF, $57, $FF, $15, $14, $30, $00, $10, $8B, $4D, $FC, $5F, $33, $CD, $5E, + $E8, $1D, $0D, $00, $00, $8B, $E5, $5D, $C3, $55, $8B, $EC, $51, $53, $56, $8B, + $F1, $89, $55, $FC, $33, $DB, $89, $1E, $89, $5E, $04, $89, $5E, $08, $E8, $FF, + $FE, $FF, $FF, $39, $1E, $74, $42, $57, $8B, $FB, $39, $5E, $08, $76, $39, $8B, + $06, $FF, $34, $B8, $53, $6A, $5A, $FF, $15, $8C, $30, $00, $10, $8B, $D8, $85, + $DB, $74, $1C, $53, $FF, $15, $60, $30, $00, $10, $FF, $75, $08, $8B, $55, $FC, + $8B, $CB, $E8, $6F, $FD, $FF, $FF, $59, $53, $FF, $15, $14, $30, $00, $10, $47, + $6A, $00, $5B, $3B, $7E, $08, $72, $C7, $5F, $5E, $5B, $8B, $E5, $5D, $C3, $56, + $8B, $F1, $83, $3E, $00, $74, $44, $57, $33, $FF, $39, $7E, $08, $76, $2B, $53, + $8B, $06, $FF, $34, $B8, $6A, $00, $6A, $5A, $FF, $15, $8C, $30, $00, $10, $8B, + $D8, $85, $DB, $74, $0E, $53, $FF, $15, $64, $30, $00, $10, $53, $FF, $15, $14, + $30, $00, $10, $47, $3B, $7E, $08, $72, $D7, $5B, $FF, $36, $6A, $00, $FF, $35, + $6C, $45, $00, $10, $FF, $15, $48, $30, $00, $10, $5F, $5E, $C3, $55, $8B, $EC, + $83, $EC, $10, $53, $6B, $D9, $28, $56, $57, $6A, $05, $8B, $F2, $03, $1D, $80, + $45, $00, $10, $58, $89, $75, $F0, $89, $45, $FC, $F6, $43, $14, $01, $8B, $3B, + $89, $7D, $F8, $74, $0B, $2B, $F8, $6A, $07, $58, $89, $7D, $F8, $89, $45, $FC, + $8D, $4D, $F4, $51, $6A, $40, $50, $57, $FF, $15, $18, $30, $00, $10, $85, $C0, + $75, $05, $6A, $0A, $58, $EB, $7F, $85, $F6, $74, $1D, $C6, $07, $E9, $8B, $43, + $04, $2B, $C7, $83, $E8, $05, $89, $47, $01, $F6, $43, $14, $01, $74, $29, $8B, + $03, $66, $C7, $00, $EB, $F9, $EB, $20, $F6, $43, $14, $01, $74, $0F, $8D, $73, + $0C, $A5, $66, $A5, $A4, $8B, $7D, $F8, $8B, $75, $F0, $EB, $0B, $8B, $43, $0C, + $89, $07, $8A, $43, $10, $88, $47, $04, $8D, $45, $F4, $50, $FF, $75, $F4, $FF, + $75, $FC, $57, $FF, $15, $18, $30, $00, $10, $FF, $75, $FC, $57, $FF, $15, $4C, + $30, $00, $10, $50, $FF, $15, $84, $30, $00, $10, $83, $E6, $01, $8B, $CE, $83, + $E1, $FD, $8D, $04, $36, $0B, $C8, $8B, $43, $14, $03, $C9, $83, $E0, $F9, $0B, + $C8, $33, $C0, $89, $4B, $14, $5F, $5E, $5B, $8B, $E5, $5D, $C3, $55, $8B, $EC, + $83, $EC, $10, $53, $8B, $1D, $88, $45, $00, $10, $8B, $D1, $56, $57, $33, $FF, + $89, $55, $FC, $8B, $F7, $85, $DB, $0F, $84, $83, $00, $00, $00, $8B, $0D, $80, + $45, $00, $10, $83, $C1, $14, $8B, $01, $C1, $E0, $1E, $C1, $F8, $1F, $3B, $C2, + $75, $0A, $46, $83, $C1, $28, $3B, $F3, $72, $EC, $EB, $64, $83, $FE, $FF, $74, + $5F, $33, $C0, $8D, $4D, $F0, $85, $D2, $0F, $95, $C0, $83, $CA, $FF, $50, $E8, + $25, $FE, $FF, $FF, $8B, $15, $88, $45, $00, $10, $59, $3B, $F2, $73, $39, $8B, + $4D, $FC, $6B, $DE, $28, $A1, $80, $45, $00, $10, $8B, $44, $03, $14, $C1, $E0, + $1E, $C1, $F8, $1F, $3B, $C1, $74, $18, $8B, $D1, $8B, $CE, $E8, $AC, $FE, $FF, + $FF, $8B, $F8, $85, $FF, $75, $11, $8B, $15, $88, $45, $00, $10, $8B, $4D, $FC, + $46, $83, $C3, $28, $3B, $F2, $72, $CD, $8D, $4D, $F0, $E8, $3F, $FE, $FF, $FF, + $8B, $C7, $5F, $5E, $5B, $8B, $E5, $5D, $C3, $56, $33, $F6, $EB, $12, $83, $FE, + $20, $73, $04, $6A, $00, $EB, $02, $6A, $01, $FF, $15, $6C, $30, $00, $10, $46, + $6A, $00, $6A, $01, $68, $68, $45, $00, $10, $FF, $15, $50, $30, $00, $10, $85, + $C0, $75, $DB, $5E, $C3, $6A, $00, $68, $68, $45, $00, $10, $FF, $15, $40, $30, + $00, $10, $C3, $57, $E8, $C0, $FF, $FF, $FF, $83, $3D, $6C, $45, $00, $10, $00, + $74, $70, $33, $C9, $E8, $04, $FF, $FF, $FF, $8B, $F8, $85, $FF, $75, $66, $A1, + $74, $45, $00, $10, $53, $33, $DB, $89, $1D, $74, $45, $00, $10, $85, $C0, $74, + $17, $56, $8B, $30, $68, $00, $80, $00, $00, $53, $50, $FF, $15, $90, $30, $00, + $10, $8B, $C6, $85, $F6, $75, $EB, $5E, $FF, $35, $80, $45, $00, $10, $53, $FF, + $35, $6C, $45, $00, $10, $FF, $15, $48, $30, $00, $10, $FF, $35, $6C, $45, $00, + $10, $FF, $15, $78, $30, $00, $10, $89, $1D, $6C, $45, $00, $10, $89, $1D, $80, + $45, $00, $10, $89, $1D, $84, $45, $00, $10, $89, $1D, $88, $45, $00, $10, $5B, + $EB, $03, $6A, $02, $5F, $E8, $6B, $FF, $FF, $FF, $8B, $C7, $5F, $C3, $55, $8B, + $EC, $83, $EC, $30, $A1, $04, $40, $00, $10, $33, $C5, $89, $45, $FC, $8B, $45, + $08, $53, $56, $57, $8B, $FA, $89, $45, $D0, $89, $7D, $D4, $8B, $F1, $33, $DB, + $E8, $14, $FF, $FF, $FF, $39, $1D, $6C, $45, $00, $10, $0F, $84, $EB, $00, $00, + $00, $8B, $CE, $E8, $8A, $04, $00, $00, $85, $C0, $0F, $84, $D8, $00, $00, $00, + $8B, $CF, $E8, $7B, $04, $00, $00, $85, $C0, $0F, $84, $C9, $00, $00, $00, $8B, + $CE, $E8, $CA, $F9, $FF, $FF, $83, $F8, $FF, $0F, $85, $B5, $00, $00, $00, $E8, + $9D, $03, $00, $00, $8B, $F8, $85, $FF, $0F, $84, $A2, $00, $00, $00, $8B, $45, + $D4, $8D, $4D, $D8, $89, $75, $D8, $89, $45, $DC, $89, $7D, $E0, $E8, $E2, $00, + $00, $00, $85, $C0, $74, $7E, $E8, $B9, $F9, $FF, $FF, $8B, $D0, $85, $D2, $74, + $6F, $8B, $45, $D8, $8B, $4D, $E8, $8B, $7D, $E0, $83, $E1, $0F, $89, $02, $8B, + $45, $DC, $89, $42, $04, $8B, $45, $E4, $83, $E0, $01, $C1, $E1, $03, $0B, $C8, + $89, $7A, $08, $8B, $42, $14, $83, $E0, $80, $0B, $C8, $8B, $45, $EC, $89, $42, + $18, $8B, $45, $F0, $89, $42, $1C, $8B, $45, $F4, $89, $42, $20, $8B, $45, $F8, + $89, $4A, $14, $89, $42, $24, $39, $5D, $E4, $74, $0F, $83, $C6, $FB, $8D, $7A, + $0C, $A5, $66, $A5, $A4, $8B, $7D, $E0, $EB, $0B, $8B, $06, $89, $42, $0C, $8A, + $46, $04, $88, $42, $10, $8B, $45, $D0, $85, $C0, $74, $23, $89, $38, $EB, $1F, + $6A, $09, $EB, $02, $6A, $08, $5B, $8B, $CF, $E8, $67, $03, $00, $00, $EB, $0F, + $6A, $09, $EB, $0A, $6A, $03, $EB, $06, $6A, $07, $EB, $02, $6A, $02, $5B, $E8, + $41, $FE, $FF, $FF, $8B, $4D, $FC, $8B, $C3, $5F, $5E, $33, $CD, $5B, $E8, $EF, + $08, $00, $00, $8B, $E5, $5D, $C2, $04, $00, $56, $8B, $F1, $8A, $06, $84, $C0, + $74, $0C, $3C, $90, $74, $08, $3C, $CC, $74, $04, $33, $C0, $5E, $C3, $33, $C9, + $41, $3B, $D1, $76, $0A, $38, $04, $31, $75, $F0, $41, $3B, $CA, $72, $F6, $33, + $C0, $40, $5E, $C3, $55, $8B, $EC, $83, $EC, $58, $A1, $04, $40, $00, $10, $33, + $C5, $89, $45, $FC, $53, $33, $DB, $C6, $45, $AC, $E8, $56, $8B, $F1, $89, $5D, + $AD, $8A, $C3, $89, $75, $C4, $57, $C6, $45, $BC, $E9, $89, $5D, $BD, $66, $C7, + $45, $B4, $0F, $80, $89, $5D, $B6, $88, $45, $DF, $89, $5D, $D8, $89, $5D, $D4, + $89, $5E, $0C, $89, $5E, $10, $0F, $B6, $C8, $8D, $55, $E0, $8B, $46, $08, $0F, + $B6, $FB, $03, $C1, $03, $3E, $89, $4D, $A8, $8B, $CF, $89, $45, $C8, $E8, $2C, + $03, $00, $00, $F7, $45, $F8, $00, $10, $00, $00, $8B, $C8, $89, $4D, $D0, $0F, + $85, $19, $02, $00, $00, $89, $7D, $CC, $80, $FB, $05, $0F, $82, $84, $00, $00, + $00, $8B, $C7, $33, $D2, $2B, $45, $C8, $83, $E8, $05, $42, $6A, $05, $89, $45, + $BD, $8D, $45, $BC, $59, $89, $45, $CC, $89, $4D, $D0, $89, $55, $D4, $8B, $45, + $D8, $3B, $F8, $73, $0C, $0F, $B6, $45, $E0, $3B, $C8, $0F, $85, $DD, $01, $00, + $00, $8B, $45, $A8, $03, $C1, $83, $F8, $20, $0F, $87, $CF, $01, $00, $00, $8B, + $46, $10, $83, $F8, $08, $0F, $83, $C3, $01, $00, $00, $8A, $55, $DF, $88, $5C, + $30, $14, $8B, $46, $10, $02, $5D, $E0, $88, $54, $30, $1C, $8A, $C2, $8B, $7E, + $08, $FF, $46, $10, $03, $7D, $A8, $02, $45, $D0, $8B, $75, $CC, $8B, $55, $D4, + $88, $45, $DF, $F3, $A4, $85, $D2, $0F, $85, $2E, $01, $00, $00, $8B, $75, $C4, + $E9, $41, $FF, $FF, $FF, $8A, $55, $E6, $80, $FA, $E8, $75, $23, $0F, $B6, $45, + $E0, $2B, $45, $C8, $83, $C0, $FB, $03, $45, $F0, $03, $C7, $89, $45, $AD, $8D, + $45, $AC, $6A, $05, $59, $89, $45, $CC, $89, $4D, $D0, $E9, $6E, $FF, $FF, $FF, + $8A, $C2, $24, $FD, $3C, $E9, $75, $50, $0F, $B6, $4D, $E0, $03, $CF, $80, $FA, + $EB, $75, $08, $0F, $BE, $45, $F0, $03, $C8, $EB, $03, $03, $4D, $F0, $8B, $06, + $3B, $C1, $77, $1D, $83, $C0, $05, $3B, $C8, $73, $16, $8B, $45, $D8, $3B, $C1, + $0F, $83, $BD, $00, $00, $00, $89, $4D, $D8, $8B, $4D, $D0, $E9, $2D, $FF, $FF, + $FF, $2B, $4D, $C8, $8D, $45, $BC, $83, $E9, $05, $89, $45, $CC, $6A, $05, $89, + $4D, $BD, $59, $89, $4D, $D0, $EB, $29, $8A, $75, $E7, $8A, $E2, $80, $E4, $F0, + $80, $FC, $70, $74, $2C, $8A, $C2, $24, $FC, $3C, $E0, $74, $24, $8A, $C6, $24, + $F0, $3C, $80, $74, $1C, $80, $E2, $FE, $80, $FA, $C2, $0F, $85, $ED, $FE, $FF, + $FF, $8B, $45, $D8, $3B, $F8, $1B, $D2, $42, $89, $55, $D4, $E9, $E0, $FE, $FF, + $FF, $8A, $45, $E0, $0F, $B6, $C8, $03, $CF, $80, $FC, $70, $74, $0D, $8A, $C2, + $24, $FC, $3C, $E0, $74, $05, $03, $4D, $F0, $EB, $06, $0F, $BE, $45, $F0, $03, + $C8, $8B, $06, $3B, $C1, $77, $0B, $83, $C0, $05, $3B, $C8, $0F, $82, $69, $FF, + $FF, $FF, $8A, $C2, $24, $FC, $3C, $E0, $0F, $84, $90, $00, $00, $00, $0F, $B6, + $C2, $80, $FA, $0F, $75, $03, $0F, $B6, $C6, $2B, $4D, $C8, $24, $0F, $0C, $80, + $83, $E9, $06, $88, $45, $B5, $8D, $45, $B4, $89, $4D, $B6, $6A, $06, $E9, $01, + $FF, $FF, $FF, $8B, $4D, $D0, $E9, $76, $FE, $FF, $FF, $80, $FB, $05, $73, $59, + $8B, $7D, $C4, $0F, $B6, $F3, $6A, $05, $5A, $8B, $07, $2B, $D6, $03, $C6, $8B, + $C8, $89, $45, $C4, $E8, $90, $FD, $FF, $FF, $85, $C0, $75, $3C, $80, $FB, $02, + $73, $11, $8B, $4D, $C4, $6A, $02, $5A, $2B, $D6, $E8, $7A, $FD, $FF, $FF, $85, + $C0, $74, $2B, $8B, $0F, $83, $C1, $FB, $E8, $F5, $00, $00, $00, $85, $C0, $74, + $1D, $8B, $0F, $6A, $05, $83, $E9, $05, $5A, $E8, $5B, $FD, $FF, $FF, $85, $C0, + $74, $0C, $C7, $47, $0C, $01, $00, $00, $00, $33, $C0, $40, $EB, $02, $33, $C0, + $8B, $4D, $FC, $5F, $5E, $33, $CD, $5B, $E8, $25, $06, $00, $00, $8B, $E5, $5D, + $C3, $8B, $15, $74, $45, $00, $10, $56, $33, $F6, $EB, $07, $39, $72, $04, $75, + $4F, $8B, $12, $85, $D2, $75, $F5, $6A, $40, $68, $00, $30, $00, $00, $68, $00, + $10, $00, $00, $56, $FF, $15, $94, $30, $00, $10, $8B, $D0, $85, $D2, $74, $41, + $8D, $4A, $20, $89, $72, $04, $89, $72, $08, $8B, $F1, $2B, $F2, $8B, $42, $04, + $83, $C6, $20, $89, $01, $89, $4A, $04, $83, $C1, $20, $81, $FE, $E0, $0F, $00, + $00, $76, $EA, $A1, $74, $45, $00, $10, $89, $02, $89, $15, $74, $45, $00, $10, + $85, $D2, $74, $0D, $8B, $42, $04, $5E, $8B, $08, $FF, $42, $08, $89, $4A, $04, + $C3, $33, $C0, $5E, $C3, $8B, $15, $74, $45, $00, $10, $8B, $C1, $56, $33, $F6, + $25, $00, $F0, $FF, $FF, $EB, $08, $3B, $D0, $74, $0A, $8B, $F2, $8B, $12, $85, + $D2, $75, $F4, $5E, $C3, $8B, $42, $04, $89, $01, $83, $6A, $08, $01, $89, $4A, + $04, $75, $1D, $8B, $02, $85, $F6, $74, $04, $89, $06, $EB, $05, $A3, $74, $45, + $00, $10, $68, $00, $80, $00, $00, $6A, $00, $52, $FF, $15, $90, $30, $00, $10, + $5E, $C3, $55, $8B, $EC, $83, $EC, $1C, $6A, $1C, $8D, $45, $E4, $50, $51, $FF, + $15, $98, $30, $00, $10, $81, $7D, $F4, $00, $10, $00, $00, $75, $0B, $F6, $45, + $F8, $F0, $74, $05, $33, $C0, $40, $EB, $02, $33, $C0, $8B, $E5, $5D, $C3, $55, + $8B, $EC, $83, $EC, $24, $8B, $C1, $89, $55, $E8, $53, $57, $89, $45, $DC, $8B, + $D8, $33, $C0, $C7, $45, $EC, $10, $40, $00, $10, $6A, $1C, $89, $45, $F0, $8B, + $FA, $88, $45, $FF, $32, $C0, $59, $F3, $AA, $B5, $10, $8A, $0B, $43, $0F, $B6, + $C1, $88, $4D, $FE, $83, $F8, $66, $7F, $30, $74, $25, $83, $F8, $26, $74, $17, + $83, $F8, $2E, $74, $12, $83, $F8, $36, $74, $0D, $83, $F8, $3E, $74, $08, $83, + $C0, $9C, $83, $F8, $01, $77, $50, $80, $4D, $FF, $40, $88, $4A, $03, $EB, $42, + $80, $4D, $FF, $08, $88, $4A, $04, $EB, $39, $83, $E8, $67, $74, $2D, $2D, $89, + $00, $00, $00, $74, $1D, $48, $83, $E8, $01, $74, $0E, $83, $E8, $01, $75, $27, + $80, $4D, $FF, $04, $88, $4A, $01, $EB, $19, $80, $4D, $FF, $02, $88, $4A, $01, + $EB, $10, $80, $4D, $FF, $20, $88, $4A, $02, $EB, $07, $80, $4D, $FF, $10, $88, + $4A, $05, $80, $ED, $01, $75, $84, $8A, $6D, $FF, $0F, $B6, $C5, $C1, $E0, $17, + $89, $42, $18, $84, $ED, $75, $05, $FE, $C5, $88, $6D, $FF, $88, $4A, $06, $80, + $F9, $0F, $75, $12, $8A, $0B, $43, $88, $4D, $FE, $88, $4A, $07, $C7, $45, $EC, + $5A, $40, $00, $10, $EB, $18, $8A, $C1, $04, $60, $3C, $03, $77, $10, $F6, $C5, + $10, $74, $05, $80, $CD, $08, $EB, $03, $80, $E5, $F7, $88, $6D, $FF, $0F, $B6, + $F9, $56, $8B, $F7, $8B, $C7, $C1, $EE, $02, $25, $03, $00, $00, $80, $79, $05, + $48, $83, $C8, $FC, $40, $8B, $55, $EC, $89, $45, $E4, $8B, $45, $EC, $0F, $B6, + $04, $06, $03, $45, $E4, $8A, $04, $10, $8B, $55, $E8, $89, $45, $F4, $3C, $FF, + $75, $1F, $81, $4A, $18, $00, $30, $00, $00, $8B, $C7, $83, $E0, $FD, $C6, $45, + $F4, $00, $83, $F8, $24, $75, $07, $B0, $01, $89, $45, $F4, $EB, $03, $8B, $45, + $F4, $C6, $45, $E0, $00, $84, $C0, $79, $19, $8B, $55, $EC, $0F, $B6, $C0, $83, + $E0, $7F, $0F, $B7, $04, $10, $8B, $55, $E8, $89, $45, $F4, $C1, $E8, $08, $89, + $45, $E0, $8A, $42, $07, $84, $C0, $74, $1A, $0F, $B6, $86, $40, $41, $00, $10, + $8B, $75, $E4, $84, $AC, $30, $40, $41, $00, $10, $74, $07, $81, $4A, $18, $00, + $30, $00, $00, $8B, $45, $F4, $A8, $01, $0F, $84, $C2, $02, $00, $00, $83, $4A, + $18, $01, $8A, $03, $8A, $E0, $88, $42, $08, $C0, $EC, $06, $88, $65, $FB, $88, + $62, $09, $8A, $E0, $C0, $E8, $03, $80, $E4, $07, $24, $07, $88, $65, $FC, $88, + $62, $0B, $88, $45, $FD, $88, $42, $0A, $8B, $45, $E0, $84, $C0, $74, $16, $8A, + $4D, $FD, $0F, $B6, $C0, $D3, $E0, $8A, $4D, $FE, $84, $C0, $79, $07, $81, $4A, + $18, $00, $30, $00, $00, $8A, $62, $07, $84, $E4, $75, $43, $8A, $C1, $04, $27, + $3C, $06, $77, $3B, $80, $C1, $27, $80, $7D, $FB, $03, $75, $13, $0F, $B6, $45, + $FD, $0F, $B6, $C9, $8A, $84, $C8, $08, $41, $00, $10, $8A, $4D, $FC, $EB, $0C, + $0F, $B6, $C1, $8A, $4D, $FD, $8A, $80, $01, $41, $00, $10, $8A, $6D, $FF, $8A, + $62, $07, $D2, $E0, $84, $C0, $79, $07, $81, $4A, $18, $00, $30, $00, $00, $BE, + $DB, $41, $00, $10, $F6, $C5, $20, $74, $5E, $80, $7D, $FB, $03, $75, $09, $81, + $4A, $18, $00, $90, $00, $00, $EB, $4F, $8A, $45, $FE, $8A, $C8, $84, $E4, $74, + $0E, $BE, $C9, $41, $00, $10, $C7, $45, $E0, $DB, $41, $00, $10, $EB, $11, $8A, + $C8, $C7, $45, $E0, $C9, $41, $00, $10, $BE, $B1, $41, $00, $10, $80, $E1, $FE, + $38, $0E, $74, $0A, $83, $C6, $02, $3B, $75, $E0, $75, $F4, $EB, $0D, $0F, $B6, + $46, $01, $8A, $4D, $FD, $D3, $E0, $84, $C0, $79, $07, $81, $4A, $18, $00, $90, + $00, $00, $BE, $DB, $41, $00, $10, $8A, $4A, $07, $8B, $C7, $84, $C9, $74, $43, + $83, $E8, $20, $74, $22, $83, $E8, $01, $74, $0A, $83, $E8, $01, $74, $18, $83, + $E8, $01, $75, $3C, $8A, $45, $FD, $C6, $45, $FB, $03, $3C, $04, $0F, $84, $A6, + $00, $00, $00, $3C, $05, $EB, $11, $8A, $45, $FD, $C6, $45, $FB, $03, $3C, $04, + $0F, $87, $93, $00, $00, $00, $3C, $01, $0F, $85, $92, $00, $00, $00, $E9, $86, + $00, $00, $00, $2D, $8C, $00, $00, $00, $74, $79, $48, $83, $E8, $01, $74, $68, + $80, $7D, $FB, $03, $75, $39, $84, $C9, $74, $0C, $BE, $EA, $41, $00, $10, $BF, + $14, $42, $00, $10, $EB, $05, $BF, $EA, $41, $00, $10, $8A, $4D, $FE, $38, $0E, + $74, $09, $83, $C6, $03, $3B, $F7, $75, $F5, $EB, $58, $84, $6E, $01, $74, $53, + $0F, $B6, $46, $02, $8A, $4D, $FD, $D3, $E0, $84, $C0, $79, $3C, $EB, $41, $84, + $C9, $74, $3D, $83, $EF, $50, $74, $14, $83, $EF, $75, $74, $2C, $83, $EF, $11, + $74, $0F, $83, $EF, $01, $74, $05, $83, $EF, $20, $75, $24, $F6, $C5, $09, $EB, + $03, $F6, $C5, $06, $75, $13, $EB, $18, $8A, $45, $FD, $3C, $01, $74, $0A, $3C, + $05, $EB, $04, $80, $7D, $FD, $05, $76, $07, $81, $4A, $18, $00, $10, $01, $00, + $8A, $4D, $FE, $8A, $43, $01, $83, $C3, $02, $80, $7D, $FD, $01, $88, $45, $FA, + $77, $14, $80, $F9, $F6, $75, $06, $80, $4D, $F4, $02, $EB, $09, $80, $F9, $F7, + $75, $04, $80, $4D, $F4, $10, $8A, $4D, $FB, $0F, $B6, $C1, $83, $E8, $00, $74, + $65, $83, $E8, $01, $74, $57, $83, $E8, $01, $8A, $45, $FC, $75, $0D, $C6, $45, + $F0, $02, $F6, $C5, $10, $75, $04, $C6, $45, $F0, $04, $80, $F9, $03, $74, $5C, + $3C, $04, $75, $58, $F6, $C5, $10, $75, $53, $8A, $4D, $FA, $83, $4A, $18, $02, + $8A, $C1, $C0, $E8, $06, $43, $88, $42, $0D, $8A, $C1, $C0, $E8, $03, $24, $07, + $88, $4A, $0C, $88, $42, $0E, $0F, $B6, $C1, $83, $E0, $07, $88, $42, $0F, $3C, + $05, $75, $29, $F6, $45, $FB, $01, $75, $23, $FE, $C8, $EB, $22, $8A, $45, $FC, + $C6, $45, $F0, $01, $EB, $B5, $8A, $45, $FC, $F6, $C5, $10, $74, $0A, $3C, $06, + $75, $A9, $C6, $45, $F0, $02, $EB, $A3, $3C, $05, $EB, $99, $8B, $45, $F0, $0F, + $B6, $F0, $4B, $8B, $C6, $83, $E8, $01, $74, $26, $83, $E8, $01, $74, $14, $48, + $83, $E8, $01, $75, $24, $81, $4A, $18, $80, $00, $00, $00, $8B, $03, $89, $42, + $14, $EB, $16, $83, $4A, $18, $40, $66, $8B, $03, $66, $89, $42, $14, $EB, $09, + $83, $4A, $18, $20, $8A, $03, $88, $42, $14, $8B, $45, $F4, $03, $DE, $EB, $0C, + $F6, $C5, $20, $74, $07, $81, $4A, $18, $00, $90, $00, $00, $5E, $A8, $10, $74, + $44, $A8, $40, $74, $1F, $F6, $C5, $08, $0F, $84, $84, $00, $00, $00, $81, $4A, + $18, $08, $01, $00, $00, $66, $8B, $03, $83, $C3, $02, $66, $89, $42, $10, $E9, + $91, $00, $00, $00, $F6, $C5, $08, $74, $10, $83, $4A, $18, $08, $66, $8B, $03, + $83, $C3, $02, $66, $89, $42, $10, $EB, $0C, $83, $4A, $18, $10, $8B, $03, $83, + $C3, $04, $89, $42, $10, $8B, $4D, $F4, $F6, $C1, $04, $74, $31, $8B, $42, $18, + $A8, $10, $74, $05, $83, $C8, $08, $EB, $09, $A8, $08, $74, $11, $0D, $00, $08, + $00, $00, $89, $42, $18, $66, $8B, $03, $66, $89, $42, $14, $EB, $0D, $83, $C8, + $08, $89, $42, $18, $66, $8B, $03, $66, $89, $42, $10, $83, $C3, $02, $F6, $C1, + $02, $74, $0A, $83, $4A, $18, $04, $8A, $03, $43, $88, $42, $10, $F6, $C1, $40, + $74, $11, $81, $4A, $18, $10, $01, $00, $00, $8B, $03, $83, $C3, $04, $89, $42, + $10, $EB, $12, $F6, $C1, $20, $74, $0D, $81, $4A, $18, $04, $01, $00, $00, $8A, + $03, $43, $88, $42, $10, $2B, $5D, $DC, $5F, $88, $1A, $80, $FB, $0F, $5B, $76, + $0A, $81, $4A, $18, $00, $50, $00, $00, $C6, $02, $0F, $0F, $B6, $02, $8B, $E5, + $5D, $C3, $3B, $0D, $04, $40, $00, $10, $F2, $75, $02, $F2, $C3, $F2, $E9, $28, + $00, $00, $00, $55, $8B, $EC, $6A, $00, $FF, $15, $38, $30, $00, $10, $FF, $75, + $08, $FF, $15, $3C, $30, $00, $10, $68, $09, $04, $00, $C0, $FF, $15, $4C, $30, + $00, $10, $50, $FF, $15, $34, $30, $00, $10, $5D, $C3, $55, $8B, $EC, $81, $EC, + $24, $03, $00, $00, $6A, $17, $E8, $EB, $00, $00, $00, $85, $C0, $74, $05, $6A, + $02, $59, $CD, $29, $A3, $20, $43, $00, $10, $89, $0D, $1C, $43, $00, $10, $89, + $15, $18, $43, $00, $10, $89, $1D, $14, $43, $00, $10, $89, $35, $10, $43, $00, + $10, $89, $3D, $0C, $43, $00, $10, $66, $8C, $15, $38, $43, $00, $10, $66, $8C, + $0D, $2C, $43, $00, $10, $66, $8C, $1D, $08, $43, $00, $10, $66, $8C, $05, $04, + $43, $00, $10, $66, $8C, $25, $00, $43, $00, $10, $66, $8C, $2D, $FC, $42, $00, + $10, $9C, $8F, $05, $30, $43, $00, $10, $8B, $45, $00, $A3, $24, $43, $00, $10, + $8B, $45, $04, $A3, $28, $43, $00, $10, $8D, $45, $08, $A3, $34, $43, $00, $10, + $8B, $85, $DC, $FC, $FF, $FF, $C7, $05, $70, $42, $00, $10, $01, $00, $01, $00, + $A1, $28, $43, $00, $10, $A3, $2C, $42, $00, $10, $C7, $05, $20, $42, $00, $10, + $09, $04, $00, $C0, $C7, $05, $24, $42, $00, $10, $01, $00, $00, $00, $C7, $05, + $30, $42, $00, $10, $01, $00, $00, $00, $6A, $04, $58, $6B, $C0, $00, $C7, $80, + $34, $42, $00, $10, $02, $00, $00, $00, $6A, $04, $58, $6B, $C0, $00, $8B, $0D, + $04, $40, $00, $10, $89, $4C, $05, $F8, $6A, $04, $58, $C1, $E0, $00, $8B, $0D, + $00, $40, $00, $10, $89, $4C, $05, $F8, $68, $C0, $30, $00, $10, $E8, $E1, $FE, + $FF, $FF, $8B, $E5, $5D, $C3, $FF, $25, $9C, $30, $00, $10, $C3, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $14, $39, $00, $00, $22, $39, $00, $00, $30, $39, $00, $00, $46, $39, $00, $00, + $56, $39, $00, $00, $68, $39, $00, $00, $76, $39, $00, $00, $88, $39, $00, $00, + $94, $39, $00, $00, $A4, $39, $00, $00, $B8, $39, $00, $00, $CA, $39, $00, $00, + $DA, $39, $00, $00, $02, $3C, $00, $00, $E4, $3B, $00, $00, $C8, $3B, $00, $00, + $32, $3A, $00, $00, $48, $3A, $00, $00, $56, $3A, $00, $00, $62, $3A, $00, $00, + $76, $3A, $00, $00, $94, $3A, $00, $00, $A4, $3A, $00, $00, $B4, $3A, $00, $00, + $CA, $3A, $00, $00, $DA, $3A, $00, $00, $EA, $3A, $00, $00, $06, $3B, $00, $00, + $0E, $3B, $00, $00, $1C, $3B, $00, $00, $28, $3B, $00, $00, $36, $3B, $00, $00, + $4A, $3B, $00, $00, $60, $3B, $00, $00, $78, $3B, $00, $00, $8C, $3B, $00, $00, + $9A, $3B, $00, $00, $A8, $3B, $00, $00, $B8, $3B, $00, $00, $16, $3C, $00, $00, + $00, $00, $00, $00, $FE, $39, $00, $00, $12, $3A, $00, $00, $00, $00, $00, $00, + $0C, $2A, $00, $10, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $20, $42, $00, $10, $70, $42, $00, $10, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $96, $30, $07, $77, $2C, $61, $0E, $EE, $BA, $51, $09, $99, + $19, $C4, $6D, $07, $8F, $F4, $6A, $70, $35, $A5, $63, $E9, $A3, $95, $64, $9E, + $32, $88, $DB, $0E, $A4, $B8, $DC, $79, $1E, $E9, $D5, $E0, $88, $D9, $D2, $97, + $2B, $4C, $B6, $09, $BD, $7C, $B1, $7E, $07, $2D, $B8, $E7, $91, $1D, $BF, $90, + $64, $10, $B7, $1D, $F2, $20, $B0, $6A, $48, $71, $B9, $F3, $DE, $41, $BE, $84, + $7D, $D4, $DA, $1A, $EB, $E4, $DD, $6D, $51, $B5, $D4, $F4, $C7, $85, $D3, $83, + $56, $98, $6C, $13, $C0, $A8, $6B, $64, $7A, $F9, $62, $FD, $EC, $C9, $65, $8A, + $4F, $5C, $01, $14, $D9, $6C, $06, $63, $63, $3D, $0F, $FA, $F5, $0D, $08, $8D, + $C8, $20, $6E, $3B, $5E, $10, $69, $4C, $E4, $41, $60, $D5, $72, $71, $67, $A2, + $D1, $E4, $03, $3C, $47, $D4, $04, $4B, $FD, $85, $0D, $D2, $6B, $B5, $0A, $A5, + $FA, $A8, $B5, $35, $6C, $98, $B2, $42, $D6, $C9, $BB, $DB, $40, $F9, $BC, $AC, + $E3, $6C, $D8, $32, $75, $5C, $DF, $45, $CF, $0D, $D6, $DC, $59, $3D, $D1, $AB, + $AC, $30, $D9, $26, $3A, $00, $DE, $51, $80, $51, $D7, $C8, $16, $61, $D0, $BF, + $B5, $F4, $B4, $21, $23, $C4, $B3, $56, $99, $95, $BA, $CF, $0F, $A5, $BD, $B8, + $9E, $B8, $02, $28, $08, $88, $05, $5F, $B2, $D9, $0C, $C6, $24, $E9, $0B, $B1, + $87, $7C, $6F, $2F, $11, $4C, $68, $58, $AB, $1D, $61, $C1, $3D, $2D, $66, $B6, + $90, $41, $DC, $76, $06, $71, $DB, $01, $BC, $20, $D2, $98, $2A, $10, $D5, $EF, + $89, $85, $B1, $71, $1F, $B5, $B6, $06, $A5, $E4, $BF, $9F, $33, $D4, $B8, $E8, + $A2, $C9, $07, $78, $34, $F9, $00, $0F, $8E, $A8, $09, $96, $18, $98, $0E, $E1, + $BB, $0D, $6A, $7F, $2D, $3D, $6D, $08, $97, $6C, $64, $91, $01, $5C, $63, $E6, + $F4, $51, $6B, $6B, $62, $61, $6C, $1C, $D8, $30, $65, $85, $4E, $00, $62, $F2, + $ED, $95, $06, $6C, $7B, $A5, $01, $1B, $C1, $F4, $08, $82, $57, $C4, $0F, $F5, + $C6, $D9, $B0, $65, $50, $E9, $B7, $12, $EA, $B8, $BE, $8B, $7C, $88, $B9, $FC, + $DF, $1D, $DD, $62, $49, $2D, $DA, $15, $F3, $7C, $D3, $8C, $65, $4C, $D4, $FB, + $58, $61, $B2, $4D, $CE, $51, $B5, $3A, $74, $00, $BC, $A3, $E2, $30, $BB, $D4, + $41, $A5, $DF, $4A, $D7, $95, $D8, $3D, $6D, $C4, $D1, $A4, $FB, $F4, $D6, $D3, + $6A, $E9, $69, $43, $FC, $D9, $6E, $34, $46, $88, $67, $AD, $D0, $B8, $60, $DA, + $73, $2D, $04, $44, $E5, $1D, $03, $33, $5F, $4C, $0A, $AA, $C9, $7C, $0D, $DD, + $3C, $71, $05, $50, $AA, $41, $02, $27, $10, $10, $0B, $BE, $86, $20, $0C, $C9, + $25, $B5, $68, $57, $B3, $85, $6F, $20, $09, $D4, $66, $B9, $9F, $E4, $61, $CE, + $0E, $F9, $DE, $5E, $98, $C9, $D9, $29, $22, $98, $D0, $B0, $B4, $A8, $D7, $C7, + $17, $3D, $B3, $59, $81, $0D, $B4, $2E, $3B, $5C, $BD, $B7, $AD, $6C, $BA, $C0, + $20, $83, $B8, $ED, $B6, $B3, $BF, $9A, $0C, $E2, $B6, $03, $9A, $D2, $B1, $74, + $39, $47, $D5, $EA, $AF, $77, $D2, $9D, $15, $26, $DB, $04, $83, $16, $DC, $73, + $12, $0B, $63, $E3, $84, $3B, $64, $94, $3E, $6A, $6D, $0D, $A8, $5A, $6A, $7A, + $0B, $CF, $0E, $E4, $9D, $FF, $09, $93, $27, $AE, $00, $0A, $B1, $9E, $07, $7D, + $44, $93, $0F, $F0, $D2, $A3, $08, $87, $68, $F2, $01, $1E, $FE, $C2, $06, $69, + $5D, $57, $62, $F7, $CB, $67, $65, $80, $71, $36, $6C, $19, $E7, $06, $6B, $6E, + $76, $1B, $D4, $FE, $E0, $2B, $D3, $89, $5A, $7A, $DA, $10, $CC, $4A, $DD, $67, + $6F, $DF, $B9, $F9, $F9, $EF, $BE, $8E, $43, $BE, $B7, $17, $D5, $8E, $B0, $60, + $E8, $A3, $D6, $D6, $7E, $93, $D1, $A1, $C4, $C2, $D8, $38, $52, $F2, $DF, $4F, + $F1, $67, $BB, $D1, $67, $57, $BC, $A6, $DD, $06, $B5, $3F, $4B, $36, $B2, $48, + $DA, $2B, $0D, $D8, $4C, $1B, $0A, $AF, $F6, $4A, $03, $36, $60, $7A, $04, $41, + $C3, $EF, $60, $DF, $55, $DF, $67, $A8, $EF, $8E, $6E, $31, $79, $BE, $69, $46, + $8C, $B3, $61, $CB, $1A, $83, $66, $BC, $A0, $D2, $6F, $25, $36, $E2, $68, $52, + $95, $77, $0C, $CC, $03, $47, $0B, $BB, $B9, $16, $02, $22, $2F, $26, $05, $55, + $BE, $3B, $BA, $C5, $28, $0B, $BD, $B2, $92, $5A, $B4, $2B, $04, $6A, $B3, $5C, + $A7, $FF, $D7, $C2, $31, $CF, $D0, $B5, $8B, $9E, $D9, $2C, $1D, $AE, $DE, $5B, + $B0, $C2, $64, $9B, $26, $F2, $63, $EC, $9C, $A3, $6A, $75, $0A, $93, $6D, $02, + $A9, $06, $09, $9C, $3F, $36, $0E, $EB, $85, $67, $07, $72, $13, $57, $00, $05, + $82, $4A, $BF, $95, $14, $7A, $B8, $E2, $AE, $2B, $B1, $7B, $38, $1B, $B6, $0C, + $9B, $8E, $D2, $92, $0D, $BE, $D5, $E5, $B7, $EF, $DC, $7C, $21, $DF, $DB, $0B, + $D4, $D2, $D3, $86, $42, $E2, $D4, $F1, $F8, $B3, $DD, $68, $6E, $83, $DA, $1F, + $CD, $16, $BE, $81, $5B, $26, $B9, $F6, $E1, $77, $B0, $6F, $77, $47, $B7, $18, + $E6, $5A, $08, $88, $70, $6A, $0F, $FF, $CA, $3B, $06, $66, $5C, $0B, $01, $11, + $FF, $9E, $65, $8F, $69, $AE, $62, $F8, $D3, $FF, $6B, $61, $45, $CF, $6C, $16, + $78, $E2, $0A, $A0, $EE, $D2, $0D, $D7, $54, $83, $04, $4E, $C2, $B3, $03, $39, + $61, $26, $67, $A7, $F7, $16, $60, $D0, $4D, $47, $69, $49, $DB, $77, $6E, $3E, + $4A, $6A, $D1, $AE, $DC, $5A, $D6, $D9, $66, $0B, $DF, $40, $F0, $3B, $D8, $37, + $53, $AE, $BC, $A9, $C5, $9E, $BB, $DE, $7F, $CF, $B2, $47, $E9, $FF, $B5, $30, + $1C, $F2, $BD, $BD, $8A, $C2, $BA, $CA, $30, $93, $B3, $53, $A6, $A3, $B4, $24, + $05, $36, $D0, $BA, $93, $06, $D7, $CD, $29, $57, $DE, $54, $BF, $67, $D9, $23, + $2E, $7A, $66, $B3, $B8, $4A, $61, $C4, $02, $1B, $68, $5D, $94, $2B, $6F, $2A, + $37, $BE, $0B, $B4, $A1, $8E, $0C, $C3, $1B, $DF, $05, $5A, $8D, $EF, $02, $2D, + $73, $00, $61, $00, $6E, $00, $63, $00, $74, $00, $75, $00, $61, $00, $72, $00, + $79, $00, $6C, $00, $69, $00, $62, $00, $2E, $00, $64, $00, $6C, $00, $6C, $00, + $00, $00, $00, $00, $41, $64, $64, $43, $6C, $69, $70, $62, $6F, $61, $72, $64, + $46, $6F, $72, $6D, $61, $74, $4C, $69, $73, $74, $65, $6E, $65, $72, $00, $00, + $52, $65, $6D, $6F, $76, $65, $43, $6C, $69, $70, $62, $6F, $61, $72, $64, $46, + $6F, $72, $6D, $61, $74, $4C, $69, $73, $74, $65, $6E, $65, $72, $00, $00, $00, + $6B, $00, $65, $00, $72, $00, $6E, $00, $65, $00, $6C, $00, $33, $00, $32, $00, + $2E, $00, $64, $00, $6C, $00, $6C, $00, $00, $00, $00, $00, $75, $00, $73, $00, + $65, $00, $72, $00, $33, $00, $32, $00, $2E, $00, $64, $00, $6C, $00, $6C, $00, + $00, $00, $00, $00, $47, $65, $74, $50, $72, $6F, $63, $41, $64, $64, $72, $65, + $73, $73, $00, $00, $4C, $64, $72, $47, $65, $74, $50, $72, $6F, $63, $65, $64, + $75, $72, $65, $41, $64, $64, $72, $65, $73, $73, $00, $00, $6E, $00, $74, $00, + $64, $00, $6C, $00, $6C, $00, $2E, $00, $64, $00, $6C, $00, $6C, $00, $00, $00, + $4C, $64, $72, $4C, $6F, $61, $64, $44, $6C, $6C, $00, $00, $77, $00, $69, $00, + $6E, $00, $74, $00, $72, $00, $75, $00, $73, $00, $74, $00, $2E, $00, $64, $00, + $6C, $00, $6C, $00, $00, $00, $00, $00, $57, $69, $6E, $56, $65, $72, $69, $66, + $79, $54, $72, $75, $73, $74, $00, $00, $57, $69, $6E, $56, $65, $72, $69, $66, + $79, $54, $72, $75, $73, $74, $45, $78, $00, $00, $00, $00, $62, $00, $64, $00, + $73, $00, $2E, $00, $65, $00, $78, $00, $65, $00, $00, $00, $4C, $00, $69, $00, + $63, $00, $65, $00, $6E, $00, $73, $00, $65, $00, $4D, $00, $61, $00, $6E, $00, + $61, $00, $67, $00, $65, $00, $72, $00, $2E, $00, $65, $00, $78, $00, $65, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $E1, $70, $F1, $55, $00, $00, $00, $00, $0D, $00, $00, $00, + $0C, $01, $00, $00, $1C, $37, $00, $00, $1C, $27, $00, $00, $00, $00, $00, $00, + $5C, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $04, $40, $00, $10, + $00, $00, $00, $00, $00, $00, $00, $00, $B0, $30, $00, $10, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $E1, $70, $F1, $55, $00, $00, $00, $00, $EC, $36, $00, $00, + $01, $00, $00, $00, $02, $00, $00, $00, $02, $00, $00, $00, $D8, $36, $00, $00, + $E0, $36, $00, $00, $E8, $36, $00, $00, $B0, $10, $00, $00, $D0, $10, $00, $00, + $F9, $36, $00, $00, $0A, $37, $00, $00, $00, $00, $01, $00, $73, $68, $66, $6F, + $6C, $64, $65, $72, $2E, $64, $6C, $6C, $00, $53, $48, $47, $65, $74, $46, $6F, + $6C, $64, $65, $72, $50, $61, $74, $68, $41, $00, $53, $48, $47, $65, $74, $46, + $6F, $6C, $64, $65, $72, $50, $61, $74, $68, $57, $00, $00, $47, $43, $54, $4C, + $00, $10, $00, $00, $0D, $1A, $00, $00, $2E, $74, $65, $78, $74, $24, $6D, $6E, + $00, $00, $00, $00, $00, $30, $00, $00, $B0, $00, $00, $00, $2E, $69, $64, $61, + $74, $61, $24, $35, $00, $00, $00, $00, $B0, $30, $00, $00, $04, $00, $00, $00, + $2E, $30, $30, $63, $66, $67, $00, $00, $C0, $30, $00, $00, $EC, $05, $00, $00, + $2E, $72, $64, $61, $74, $61, $00, $00, $B0, $36, $00, $00, $6B, $00, $00, $00, + $2E, $65, $64, $61, $74, $61, $00, $00, $1C, $37, $00, $00, $0C, $01, $00, $00, + $2E, $72, $64, $61, $74, $61, $24, $7A, $7A, $7A, $64, $62, $67, $00, $00, $00, + $28, $38, $00, $00, $28, $00, $00, $00, $2E, $69, $64, $61, $74, $61, $24, $32, + $00, $00, $00, $00, $50, $38, $00, $00, $14, $00, $00, $00, $2E, $69, $64, $61, + $74, $61, $24, $33, $00, $00, $00, $00, $64, $38, $00, $00, $B0, $00, $00, $00, + $2E, $69, $64, $61, $74, $61, $24, $34, $00, $00, $00, $00, $14, $39, $00, $00, + $1E, $03, $00, $00, $2E, $69, $64, $61, $74, $61, $24, $36, $00, $00, $00, $00, + $00, $40, $00, $00, $14, $02, $00, $00, $2E, $64, $61, $74, $61, $00, $00, $00, + $20, $42, $00, $00, $6C, $03, $00, $00, $2E, $62, $73, $73, $00, $00, $00, $00, + $00, $50, $00, $00, $58, $00, $00, $00, $2E, $72, $73, $72, $63, $24, $30, $31, + $00, $00, $00, $00, $60, $50, $00, $00, $80, $01, $00, $00, $2E, $72, $73, $72, + $63, $24, $30, $32, $00, $00, $00, $00, $64, $38, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $F0, $39, $00, $00, $00, $30, $00, $00, $08, $39, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $26, $3A, $00, $00, $A4, $30, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $14, $39, $00, $00, $22, $39, $00, $00, $30, $39, $00, $00, + $46, $39, $00, $00, $56, $39, $00, $00, $68, $39, $00, $00, $76, $39, $00, $00, + $88, $39, $00, $00, $94, $39, $00, $00, $A4, $39, $00, $00, $B8, $39, $00, $00, + $CA, $39, $00, $00, $DA, $39, $00, $00, $02, $3C, $00, $00, $E4, $3B, $00, $00, + $C8, $3B, $00, $00, $32, $3A, $00, $00, $48, $3A, $00, $00, $56, $3A, $00, $00, + $62, $3A, $00, $00, $76, $3A, $00, $00, $94, $3A, $00, $00, $A4, $3A, $00, $00, + $B4, $3A, $00, $00, $CA, $3A, $00, $00, $DA, $3A, $00, $00, $EA, $3A, $00, $00, + $06, $3B, $00, $00, $0E, $3B, $00, $00, $1C, $3B, $00, $00, $28, $3B, $00, $00, + $36, $3B, $00, $00, $4A, $3B, $00, $00, $60, $3B, $00, $00, $78, $3B, $00, $00, + $8C, $3B, $00, $00, $9A, $3B, $00, $00, $A8, $3B, $00, $00, $B8, $3B, $00, $00, + $16, $3C, $00, $00, $00, $00, $00, $00, $FE, $39, $00, $00, $12, $3A, $00, $00, + $00, $00, $00, $00, $8F, $00, $43, $72, $65, $61, $74, $65, $46, $69, $6C, $65, + $57, $00, $F0, $01, $47, $65, $74, $46, $69, $6C, $65, $53, $69, $7A, $65, $00, + $8C, $00, $43, $72, $65, $61, $74, $65, $46, $69, $6C, $65, $4D, $61, $70, $70, + $69, $6E, $67, $57, $00, $00, $57, $03, $4D, $61, $70, $56, $69, $65, $77, $4F, + $66, $46, $69, $6C, $65, $00, $D6, $04, $55, $6E, $6D, $61, $70, $56, $69, $65, + $77, $4F, $66, $46, $69, $6C, $65, $00, $52, $00, $43, $6C, $6F, $73, $65, $48, + $61, $6E, $64, $6C, $65, $00, $EF, $04, $56, $69, $72, $74, $75, $61, $6C, $50, + $72, $6F, $74, $65, $63, $74, $00, $00, $45, $05, $6C, $73, $74, $72, $63, $6D, + $70, $69, $57, $00, $A4, $02, $47, $65, $74, $56, $65, $72, $73, $69, $6F, $6E, + $45, $78, $57, $00, $18, $02, $47, $65, $74, $4D, $6F, $64, $75, $6C, $65, $48, + $61, $6E, $64, $6C, $65, $57, $00, $00, $45, $02, $47, $65, $74, $50, $72, $6F, + $63, $41, $64, $64, $72, $65, $73, $73, $00, $00, $3F, $03, $4C, $6F, $61, $64, + $4C, $69, $62, $72, $61, $72, $79, $57, $00, $00, $14, $02, $47, $65, $74, $4D, + $6F, $64, $75, $6C, $65, $46, $69, $6C, $65, $4E, $61, $6D, $65, $57, $00, $00, + $4B, $45, $52, $4E, $45, $4C, $33, $32, $2E, $64, $6C, $6C, $00, $00, $BF, $00, + $53, $48, $47, $65, $74, $46, $6F, $6C, $64, $65, $72, $50, $61, $74, $68, $41, + $00, $00, $C3, $00, $53, $48, $47, $65, $74, $46, $6F, $6C, $64, $65, $72, $50, + $61, $74, $68, $57, $00, $00, $53, $48, $45, $4C, $4C, $33, $32, $2E, $64, $6C, + $6C, $00, $EC, $02, $49, $6E, $74, $65, $72, $6C, $6F, $63, $6B, $65, $64, $45, + $78, $63, $68, $61, $6E, $67, $65, $00, $CD, $02, $48, $65, $61, $70, $43, $72, + $65, $61, $74, $65, $00, $00, $CF, $02, $48, $65, $61, $70, $46, $72, $65, $65, + $00, $00, $C0, $01, $47, $65, $74, $43, $75, $72, $72, $65, $6E, $74, $50, $72, + $6F, $63, $65, $73, $73, $00, $E9, $02, $49, $6E, $74, $65, $72, $6C, $6F, $63, + $6B, $65, $64, $43, $6F, $6D, $70, $61, $72, $65, $45, $78, $63, $68, $61, $6E, + $67, $65, $00, $00, $C4, $04, $54, $68, $72, $65, $61, $64, $33, $32, $4E, $65, + $78, $74, $00, $00, $C3, $04, $54, $68, $72, $65, $61, $64, $33, $32, $46, $69, + $72, $73, $74, $00, $C5, $01, $47, $65, $74, $43, $75, $72, $72, $65, $6E, $74, + $54, $68, $72, $65, $61, $64, $49, $64, $00, $00, $BA, $04, $53, $75, $73, $70, + $65, $6E, $64, $54, $68, $72, $65, $61, $64, $00, $13, $04, $52, $65, $73, $75, + $6D, $65, $54, $68, $72, $65, $61, $64, $00, $00, $BE, $00, $43, $72, $65, $61, + $74, $65, $54, $6F, $6F, $6C, $68, $65, $6C, $70, $33, $32, $53, $6E, $61, $70, + $73, $68, $6F, $74, $00, $00, $B2, $04, $53, $6C, $65, $65, $70, $00, $D2, $02, + $48, $65, $61, $70, $52, $65, $41, $6C, $6C, $6F, $63, $00, $CB, $02, $48, $65, + $61, $70, $41, $6C, $6C, $6F, $63, $00, $CE, $02, $48, $65, $61, $70, $44, $65, + $73, $74, $72, $6F, $79, $00, $86, $02, $47, $65, $74, $54, $68, $72, $65, $61, + $64, $43, $6F, $6E, $74, $65, $78, $74, $00, $00, $C1, $01, $47, $65, $74, $43, + $75, $72, $72, $65, $6E, $74, $50, $72, $6F, $63, $65, $73, $73, $49, $64, $00, + $58, $01, $46, $6C, $75, $73, $68, $49, $6E, $73, $74, $72, $75, $63, $74, $69, + $6F, $6E, $43, $61, $63, $68, $65, $00, $91, $04, $53, $65, $74, $54, $68, $72, + $65, $61, $64, $43, $6F, $6E, $74, $65, $78, $74, $00, $00, $85, $03, $4F, $70, + $65, $6E, $54, $68, $72, $65, $61, $64, $00, $00, $EC, $04, $56, $69, $72, $74, + $75, $61, $6C, $46, $72, $65, $65, $00, $E9, $04, $56, $69, $72, $74, $75, $61, + $6C, $41, $6C, $6C, $6F, $63, $00, $00, $F1, $04, $56, $69, $72, $74, $75, $61, + $6C, $51, $75, $65, $72, $79, $00, $00, $D3, $04, $55, $6E, $68, $61, $6E, $64, + $6C, $65, $64, $45, $78, $63, $65, $70, $74, $69, $6F, $6E, $46, $69, $6C, $74, + $65, $72, $00, $00, $A5, $04, $53, $65, $74, $55, $6E, $68, $61, $6E, $64, $6C, + $65, $64, $45, $78, $63, $65, $70, $74, $69, $6F, $6E, $46, $69, $6C, $74, $65, + $72, $00, $C0, $04, $54, $65, $72, $6D, $69, $6E, $61, $74, $65, $50, $72, $6F, + $63, $65, $73, $73, $00, $00, $04, $03, $49, $73, $50, $72, $6F, $63, $65, $73, + $73, $6F, $72, $46, $65, $61, $74, $75, $72, $65, $50, $72, $65, $73, $65, $6E, + $74, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $B1, $19, $BF, $44, $4E, $E6, $40, $BB, $00, $00, $00, $00, $00, $00, $00, $00, + $A3, $A8, $A3, $A8, $A3, $A8, $A3, $A8, $A3, $A8, $A3, $A8, $A3, $A8, $A3, $A8, + $AA, $AA, $AA, $AA, $AA, $AA, $AA, $AA, $AC, $AA, $B2, $AA, $9F, $9F, $9F, $9F, + $B5, $A3, $A3, $A4, $AA, $AA, $BA, $AA, $96, $AA, $A8, $AA, $C3, $C3, $96, $96, + $B7, $AE, $D6, $BD, $A3, $C5, $A3, $A3, $9F, $C3, $9C, $AA, $AA, $AC, $AA, $BF, + $03, $7F, $11, $7F, $01, $7F, $01, $3F, $01, $01, $90, $82, $7D, $97, $59, $59, + $59, $59, $59, $7F, $59, $59, $60, $7D, $7F, $7F, $59, $59, $59, $59, $59, $59, + $59, $59, $59, $59, $59, $59, $9A, $88, $7D, $59, $50, $50, $50, $50, $59, $59, + $59, $59, $61, $94, $61, $9E, $59, $59, $85, $59, $92, $A3, $60, $60, $59, $59, + $59, $59, $59, $59, $59, $59, $59, $59, $59, $9F, $01, $03, $01, $04, $03, $D5, + $03, $CC, $01, $BC, $03, $F0, $10, $10, $10, $10, $50, $50, $50, $50, $14, $20, + $20, $20, $20, $01, $01, $01, $01, $C4, $02, $10, $00, $00, $00, $00, $01, $01, + $C0, $C2, $10, $11, $02, $03, $11, $03, $03, $04, $00, $00, $14, $00, $02, $00, + $00, $C6, $C8, $02, $02, $02, $02, $00, $00, $FF, $FF, $FF, $FF, $00, $00, $00, + $FF, $CA, $01, $01, $01, $00, $06, $00, $04, $00, $C0, $C2, $01, $01, $03, $01, + $FF, $FF, $01, $00, $03, $C4, $C4, $C6, $03, $01, $01, $01, $FF, $03, $03, $03, + $C8, $40, $00, $0A, $00, $04, $00, $00, $00, $00, $7F, $00, $33, $01, $00, $00, + $00, $00, $00, $00, $FF, $BF, $FF, $FF, $00, $00, $00, $00, $07, $00, $00, $FF, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $FF, + $00, $00, $00, $BF, $00, $00, $00, $00, $00, $00, $00, $00, $7F, $00, $00, $FF, + $4A, $4A, $4A, $4A, $4B, $52, $4A, $4A, $4A, $4A, $4F, $4C, $4A, $4A, $4A, $4A, + $4A, $4A, $4A, $4A, $55, $45, $40, $4A, $4A, $4A, $45, $59, $4D, $46, $4A, $5D, + $4A, $4A, $4A, $4A, $4A, $4A, $4A, $4A, $4A, $4A, $4A, $4A, $4A, $4A, $61, $63, + $67, $4E, $4A, $4A, $6B, $6D, $4A, $4A, $45, $6D, $4A, $4A, $44, $45, $4A, $4A, + $00, $00, $00, $02, $0D, $06, $06, $06, $06, $0E, $00, $00, $00, $00, $06, $06, + $06, $00, $06, $06, $02, $06, $00, $0A, $0A, $07, $07, $06, $02, $05, $05, $02, + $02, $00, $00, $04, $04, $04, $04, $00, $00, $00, $0E, $05, $06, $06, $06, $01, + $06, $00, $00, $08, $00, $10, $00, $18, $00, $20, $00, $28, $00, $30, $00, $80, + $01, $82, $01, $86, $00, $F6, $CF, $FE, $3F, $AB, $00, $B0, $00, $B1, $00, $B3, + $00, $BA, $F8, $BB, $00, $C0, $00, $C1, $00, $C7, $BF, $62, $FF, $00, $8D, $FF, + $00, $C4, $FF, $00, $C5, $FF, $00, $FF, $FF, $EB, $01, $FF, $0E, $12, $08, $00, + $13, $09, $00, $16, $08, $00, $17, $09, $00, $2B, $09, $00, $AE, $FF, $07, $B2, + $FF, $00, $B4, $FF, $00, $B5, $FF, $00, $C3, $01, $00, $C7, $FF, $BF, $E7, $08, + $00, $F0, $02, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, + $18, $00, $00, $00, $18, $00, $00, $80, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $01, $00, $02, $00, $00, $00, $30, $00, $00, $80, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $01, $00, + $09, $04, $00, $00, $48, $00, $00, $00, $60, $50, $00, $00, $7D, $01, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $3C, $3F, $78, $6D, $6C, $20, $76, $65, $72, $73, $69, $6F, $6E, $3D, $27, $31, + $2E, $30, $27, $20, $65, $6E, $63, $6F, $64, $69, $6E, $67, $3D, $27, $55, $54, + $46, $2D, $38, $27, $20, $73, $74, $61, $6E, $64, $61, $6C, $6F, $6E, $65, $3D, + $27, $79, $65, $73, $27, $3F, $3E, $0D, $0A, $3C, $61, $73, $73, $65, $6D, $62, + $6C, $79, $20, $78, $6D, $6C, $6E, $73, $3D, $27, $75, $72, $6E, $3A, $73, $63, + $68, $65, $6D, $61, $73, $2D, $6D, $69, $63, $72, $6F, $73, $6F, $66, $74, $2D, + $63, $6F, $6D, $3A, $61, $73, $6D, $2E, $76, $31, $27, $20, $6D, $61, $6E, $69, + $66, $65, $73, $74, $56, $65, $72, $73, $69, $6F, $6E, $3D, $27, $31, $2E, $30, + $27, $3E, $0D, $0A, $20, $20, $3C, $74, $72, $75, $73, $74, $49, $6E, $66, $6F, + $20, $78, $6D, $6C, $6E, $73, $3D, $22, $75, $72, $6E, $3A, $73, $63, $68, $65, + $6D, $61, $73, $2D, $6D, $69, $63, $72, $6F, $73, $6F, $66, $74, $2D, $63, $6F, + $6D, $3A, $61, $73, $6D, $2E, $76, $33, $22, $3E, $0D, $0A, $20, $20, $20, $20, + $3C, $73, $65, $63, $75, $72, $69, $74, $79, $3E, $0D, $0A, $20, $20, $20, $20, + $20, $20, $3C, $72, $65, $71, $75, $65, $73, $74, $65, $64, $50, $72, $69, $76, + $69, $6C, $65, $67, $65, $73, $3E, $0D, $0A, $20, $20, $20, $20, $20, $20, $20, + $20, $3C, $72, $65, $71, $75, $65, $73, $74, $65, $64, $45, $78, $65, $63, $75, + $74, $69, $6F, $6E, $4C, $65, $76, $65, $6C, $20, $6C, $65, $76, $65, $6C, $3D, + $27, $61, $73, $49, $6E, $76, $6F, $6B, $65, $72, $27, $20, $75, $69, $41, $63, + $63, $65, $73, $73, $3D, $27, $66, $61, $6C, $73, $65, $27, $20, $2F, $3E, $0D, + $0A, $20, $20, $20, $20, $20, $20, $3C, $2F, $72, $65, $71, $75, $65, $73, $74, + $65, $64, $50, $72, $69, $76, $69, $6C, $65, $67, $65, $73, $3E, $0D, $0A, $20, + $20, $20, $20, $3C, $2F, $73, $65, $63, $75, $72, $69, $74, $79, $3E, $0D, $0A, + $20, $20, $3C, $2F, $74, $72, $75, $73, $74, $49, $6E, $66, $6F, $3E, $0D, $0A, + $3C, $2F, $61, $73, $73, $65, $6D, $62, $6C, $79, $3E, $0D, $0A, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $10, $00, $00, $54, $01, $00, $00, $18, $30, $34, $30, $4F, $30, $62, $30, + $86, $30, $94, $30, $9B, $30, $A3, $30, $C2, $30, $D2, $30, $08, $31, $77, $31, + $C5, $31, $CC, $31, $F2, $31, $05, $32, $1F, $32, $2B, $32, $3A, $32, $6A, $32, + $9C, $32, $20, $33, $2E, $33, $35, $33, $40, $33, $54, $33, $59, $33, $60, $33, + $65, $33, $6D, $33, $72, $33, $77, $33, $7D, $33, $82, $33, $89, $33, $95, $33, + $9B, $33, $AB, $33, $B8, $33, $FA, $34, $02, $35, $07, $35, $0C, $35, $29, $35, + $38, $35, $40, $35, $5A, $35, $67, $35, $75, $35, $7A, $35, $8F, $35, $95, $35, + $A2, $35, $A8, $35, $AD, $35, $B2, $35, $B8, $35, $BE, $35, $C3, $35, $F2, $35, + $13, $36, $32, $36, $3F, $36, $53, $36, $59, $36, $73, $36, $7E, $36, $8B, $36, + $A2, $36, $B0, $36, $C3, $36, $C9, $36, $E3, $36, $E9, $36, $FA, $36, $01, $37, + $07, $37, $36, $37, $3D, $37, $6F, $37, $79, $37, $9D, $37, $B0, $37, $D7, $37, + $DC, $37, $0D, $38, $36, $38, $3B, $38, $42, $38, $58, $38, $8C, $38, $9F, $38, + $C0, $38, $C4, $38, $C8, $38, $CC, $38, $D3, $38, $DF, $38, $F6, $38, $06, $39, + $0C, $39, $16, $39, $1E, $39, $2B, $39, $30, $39, $41, $39, $47, $39, $52, $39, + $5A, $39, $5F, $39, $65, $39, $71, $39, $80, $39, $A8, $39, $BC, $39, $E3, $39, + $59, $3A, $D9, $3A, $EC, $3A, $09, $3B, $1A, $3B, $25, $3B, $3C, $3B, $49, $3B, + $67, $3B, $6D, $3B, $96, $3B, $A5, $3B, $E9, $3B, $F6, $3B, $0B, $3C, $3B, $3C, + $48, $3C, $4F, $3C, $60, $3C, $66, $3C, $7F, $3C, $AA, $3C, $05, $3D, $0F, $3D, + $16, $3D, $46, $3D, $5F, $3D, $96, $3D, $A6, $3D, $C9, $3D, $FB, $3D, $05, $3E, + $0B, $3E, $18, $3E, $1E, $3E, $2B, $3E, $40, $3E, $49, $3E, $5D, $3E, $6A, $3E, + $71, $3E, $77, $3E, $7D, $3E, $83, $3E, $89, $3E, $8F, $3E, $95, $3E, $9B, $3E, + $B5, $3E, $D7, $3E, $00, $20, $00, $00, $78, $00, $00, $00, $1B, $30, $B3, $32, + $D6, $32, $04, $33, $0C, $33, $27, $33, $5E, $33, $6C, $33, $81, $33, $B6, $33, + $70, $34, $0C, $35, $16, $35, $97, $35, $A8, $35, $C0, $35, $E2, $35, $E9, $35, + $F4, $35, $F9, $35, $23, $36, $8B, $36, $90, $36, $97, $36, $D4, $38, $EA, $38, + $F3, $38, $FE, $38, $05, $39, $25, $39, $2B, $39, $31, $39, $37, $39, $3D, $39, + $43, $39, $4A, $39, $51, $39, $58, $39, $5F, $39, $66, $39, $6D, $39, $74, $39, + $7C, $39, $84, $39, $8C, $39, $98, $39, $A1, $39, $A6, $39, $AC, $39, $B6, $39, + $C0, $39, $D0, $39, $E0, $39, $F0, $39, $F9, $39, $08, $3A, $00, $30, $00, $00, + $14, $00, $00, $00, $B0, $30, $C0, $30, $C4, $30, $8C, $36, $98, $36, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, + $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 +); +implementation +const + BDS_CRC_OFFSET:DWORD=$00000BF1; + BDS_PATCH_OFFSET:DWORD=$00000C00; + BDS_FUNC_OFFSET:DWORD=$00000C06; + LM_CRC_OFFSET:DWORD=$00000C22; + LM_PATCH_OFFSET:DWORD=$00000C2A; + LM_FUNC_OFFSET:DWORD=$00000C30; + +procedure CreateSHFolderData(RadStudioVersion:PRadStudioVersion); +begin + PDWORD(@SHFolderData[BDS_CRC_OFFSET])^:=RadStudioVersion^.BdsPatchInfo.Crc; + PDWORD(@SHFolderData[BDS_PATCH_OFFSET])^:=RadStudioVersion^.BdsPatchInfo.PatchOffset; + PDWORD(@SHFolderData[BDS_FUNC_OFFSET])^:=RadStudioVersion^.BdsPatchInfo.FinalizeArrayOffset; + PDWORD(@SHFolderData[LM_CRC_OFFSET])^:=RadStudioVersion^.LicenseManagerPatchInfo.Crc; + PDWORD(@SHFolderData[LM_PATCH_OFFSET])^:=RadStudioVersion^.LicenseManagerPatchInfo.PatchOffset; + PDWORD(@SHFolderData[LM_FUNC_OFFSET])^:=RadStudioVersion^.LicenseManagerPatchInfo.FinalizeArrayOffset; +end; + +end. diff --git a/10.1.UP2/Keygen/Sha1.pas b/10.1.UP2/Keygen/Sha1.pas new file mode 100644 index 0000000..338b54a --- /dev/null +++ b/10.1.UP2/Keygen/Sha1.pas @@ -0,0 +1,251 @@ +{ + +*************************************************** +* A binary compatible SHA1 implementation * +* written by Dave Barton (davebarton@bigfoot.com) * +*************************************************** +* 160bit hash size * +*************************************************** + +} +unit SHA1; + +interface +uses + Windows,SysUtils; + +type + TSHA1Digest = array[0..19] of byte; + TSHA1Context = record + Hash: array[0..4] of DWord; + Hi, Lo: integer; + Buffer: array[0..63] of byte; + Index: integer; + end; + +procedure SHA1Init(var Context: TSHA1Context); +procedure SHA1Update(var Context: TSHA1Context; Buffer: pointer; Len: integer); +procedure SHA1Final(var Context: TSHA1Context; var Digest: TSHA1Digest); + + +function SHA1String(M: AnsiString): TSHA1Digest; +function SHA1File(N: string): TSHA1Digest; +function SHA1Print(Digest: TSHA1Digest): AnsiString; + +//****************************************************************************** +implementation +{ +$R- +} + +function LRot16(X: Word; c: longint): Word; +begin + LRot16 := (X shl c) or (X shr (16 - c)); +end; + + +function RRot16(X: Word; c: longint): Word; +begin + RRot16 := (X shr c) or (X shl (16 - c)); +end; + + +function LRot32(X: DWord; c: longint): DWord; +begin + LRot32 := (X shl c) or (X shr (32 - c)); +end; + + +function RRot32(X: DWord; c: longint): DWord; +begin + RRot32 := (X shr c) or (X shl (32 - c)); +end; + + + +//****************************************************************************** + +function F1(x, y, z: DWord): DWord; +begin + Result := z xor (x and (y xor z)); +end; + +function F2(x, y, z: DWord): DWord; +begin + Result := x xor y xor z; +end; + +function F3(x, y, z: DWord): DWord; +begin + Result := (x and y) or (z and (x or y)); +end; + +//****************************************************************************** + +function RB(A: DWord): DWord; +begin + Result := (A shr 24) or ((A shr 8) and $FF00) or ((A shl 8) and $FF0000) or (A shl 24); +end; + +procedure SHA1Compress(var Data: TSHA1Context); +var + A, B, C, D, E, T: DWord; + W: array[0..79] of DWord; + i: integer; +begin + Move(Data.Buffer, W, Sizeof(Data.Buffer)); + for i := 0 to 15 do + W[i] := RB(W[i]); + for i := 16 to 79 do + W[i] := LRot32(W[i - 3] xor W[i - 8] xor W[i - 14] xor W[i - 16], 1); + A := Data.Hash[0]; B := Data.Hash[1]; C := Data.Hash[2]; D := Data.Hash[3]; E := Data.Hash[4]; + for i := 0 to 19 do + begin + T := LRot32(A, 5) + F1(B, C, D) + E + W[i] + $5A827999; + E := D; D := C; C := LRot32(B, 30); B := A; A := T; + end; + for i := 20 to 39 do + begin + T := LRot32(A, 5) + F2(B, C, D) + E + W[i] + $6ED9EBA1; + E := D; D := C; C := LRot32(B, 30); B := A; A := T; + end; + for i := 40 to 59 do + begin + T := LRot32(A, 5) + F3(B, C, D) + E + W[i] + $8F1BBCDC; + E := D; D := C; C := LRot32(B, 30); B := A; A := T; + end; + for i := 60 to 79 do + begin + T := LRot32(A, 5) + F2(B, C, D) + E + W[i] + $CA62C1D6; + E := D; D := C; C := LRot32(B, 30); B := A; A := T; + end; + Data.Hash[0] := Data.Hash[0] + A; + Data.Hash[1] := Data.Hash[1] + B; + Data.Hash[2] := Data.Hash[2] + C; + Data.Hash[3] := Data.Hash[3] + D; + Data.Hash[4] := Data.Hash[4] + E; + FillChar(W, Sizeof(W), 0); + FillChar(Data.Buffer, Sizeof(Data.Buffer), 0); +end; + +//****************************************************************************** + +procedure SHA1Init(var Context: TSHA1Context); +begin + Context.Hi := 0; Context.Lo := 0; + Context.Index := 0; + FillChar(Context.Buffer, Sizeof(Context.Buffer), 0); + Context.Hash[0] := $67452301; + Context.Hash[1] := $EFCDAB89; + Context.Hash[2] := $98BADCFE; + Context.Hash[3] := $10325476; + Context.Hash[4] := $C3D2E1F0; +end; + +//****************************************************************************** + +procedure SHA1UpdateLen(var Context: TSHA1Context; Len: integer); +var + i, k: integer; +begin + for k := 0 to 7 do + begin + i := Context.Lo; + Inc(Context.Lo, Len); + if Context.Lo < i then + Inc(Context.Hi); + end; +end; + +//****************************************************************************** + +procedure SHA1Update(var Context: TSHA1Context; Buffer: pointer; Len: integer); +type + PByte = ^Byte; +begin + SHA1UpdateLen(Context, Len); + while Len > 0 do + begin + Context.Buffer[Context.Index] := PByte(Buffer)^; + Inc(PByte(Buffer)); + Inc(Context.Index); + Dec(Len); + if Context.Index = 64 then + begin + Context.Index := 0; + SHA1Compress(Context); + end; + end; +end; + +//****************************************************************************** + +procedure SHA1Final(var Context: TSHA1Context; var Digest: TSHA1Digest); +type + PDWord = ^DWord; +begin + Context.Buffer[Context.Index] := $80; + if Context.Index >= 56 then + SHA1Compress(Context); + PDWord(@Context.Buffer[56])^ := RB(Context.Hi); + PDWord(@Context.Buffer[60])^ := RB(Context.Lo); + SHA1Compress(Context); + Context.Hash[0] := RB(Context.Hash[0]); + Context.Hash[1] := RB(Context.Hash[1]); + Context.Hash[2] := RB(Context.Hash[2]); + Context.Hash[3] := RB(Context.Hash[3]); + Context.Hash[4] := RB(Context.Hash[4]); + Move(Context.Hash, Digest, Sizeof(Digest)); + FillChar(Context, Sizeof(Context), 0); +end; + + +function SHA1String(M: AnsiString): TSHA1Digest; +var + Context: TSHA1Context; +begin + SHA1Init(Context); + SHA1Update(Context, PAnsiChar(M), length(M)); + SHA1Final(Context, Result); +end; + +function SHA1File(N: string): TSHA1Digest; +var + FileHandle: THandle; + MapHandle: THandle; + ViewPointer: pointer; + Context: TSHA1Context; +begin + SHA1Init(Context); + FileHandle := CreateFile(pChar(N), GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE, + nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL or FILE_FLAG_SEQUENTIAL_SCAN, 0); + if FileHandle <> INVALID_HANDLE_VALUE then try + MapHandle := CreateFileMapping(FileHandle, nil, PAGE_READONLY, 0, 0, nil); + if MapHandle <> 0 then try + ViewPointer := MapViewOfFile(MapHandle, FILE_MAP_READ, 0, 0, 0); + if ViewPointer <> nil then try + SHA1Update(Context, ViewPointer, GetFileSize(FileHandle, nil)); + finally + UnmapViewOfFile(ViewPointer); + end; + finally + CloseHandle(MapHandle); + end; + finally + CloseHandle(FileHandle); + end; + SHA1Final(Context, Result); +end; + +function SHA1Print(Digest: TSHA1Digest): AnsiString; +var + I: byte; +const + Digits: array[0..15] of AnsiChar = + ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'); +begin + Result := ''; + for I := 0 to 19 do Result := Result + Digits[(Digest[I] shr 4) and $0F] + Digits[Digest[I] and $0F]; +end; + +end. \ No newline at end of file diff --git a/10.1.UP2/Release/Activator.exe b/10.1.UP2/Release/Activator.exe new file mode 100644 index 0000000000000000000000000000000000000000..444bbee0f734800ea11edd1fa6bca3371d79c456 GIT binary patch literal 217056 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 iQFZI-WL!_`X`_BO?rB0z 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 KUR&`tIST-5H^c1! literal 0 HcmV?d00001 diff --git a/README.md b/README.md index af54ddf..dec8c48 100644 --- a/README.md +++ b/README.md @@ -5,3 +5,7 @@ Compiled by Delphi 2007: 1. KOL [http://kolmck.net/](http://kolmck.net/ "http://kolmck.net/") 2. Rad-Studio-Keygen [https://github.com/elseif/Rad-Studio-Keygen](https://github.com/elseif/Rad-Studio-Keygen "https://github.com/elseif/Rad-Studio-Keygen") + +Special thanks to elseif unis x-force cjack etc... + +O(_)O~